как я запускаю (и связываю), удаленный сервис в андроиде, который реализован в другом приложении (другой пакет)?

я немного застреваю с удаленными сервисами в андроиде. вещь, я реализовал удаленный сервис в пакете "a.b.c", и я хочу, чтобы другие приложения смогли получить доступ к этому сервису. я избавился от целого дрянного aidl-материала и разработал "интерфейс" сервиса для работы через широковещательно переданные намерения. хорошо работает до сих пор...

проблема: как я получаю a different приложение (другой пакет, другой проект, возможно, даже другой разработчик...) для запущения/останавливания сервиса?

package d.e.f;

import a.b.c.*;

public class main extends Activity {
    protected ImyService myService;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Intent intent = new Intent(ImyService.class.getName());
        bindService(intent, sConnection, Context.BIND_AUTO_CREATE);
    }

    protected ServiceConnection sConnection = new ServiceConnection() {
        public void onServiceConnected(ComponentName className, IBinder binder) {
            wlService = ImyService.Stub.asInterface(binder);
            ServiceConnected = true;
            Toast.makeText(main.this, "service connected", Toast.LENGTH_SHORT).show();
        }

        public void onServiceDisconnected(ComponentName className) {
            wlService = null;
            ServiceConnected = false;
            Toast.makeText(main.this, "service disconnected", Toast.LENGTH_SHORT).show();
        }
    };
}

это сразу разрушит мое приложение на запуске. что я делал неправильно? как я заставлю это работать?

после того как это работает, команды и данные будут переданы через широковещательные сообщения. таким образом, это не должно быть никакой настоящей проблемой...

8
задан xenonite 19 June 2010 в 10:25
поделиться

1 ответ

Шаг № 1. Настройте для своей с помощью нить.

Шаг №2: Используйте эту строку действия для Intent , который вы используете с bindService () (например, new Intent ("this.is.my.custom. ДЕЙСТВИЕ ") )

20
ответ дан 5 December 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: