Сбой приложения Android с разрешениями при привязке к сервису

Я пытаюсь расширить класс связывателя для вызова метода в моем сервисе, но не могу получить намерения, соответствующие фильтрам намерений. Есть два сценария.

  1. Если я настрою свое намерение, как показано ниже, bindService вернет true, startService вернет информацию о компоненте, и служба запустится, но приложение немедленно завершится сбоем:

    private LocationUpdateService mService;
    Activity activity = this.cordova.getActivity();
    updateServiceIntent = new Intent(activity, LocationUpdateService.class);
    
    Boolean successful = activity.bindService(updateServiceIntent, mConnection, Context.BIND_AUTO_CREATE);
    ComponentName serviceStarted = activity.startService(updateServiceIntent);
    
  2. Если я настрою свое намерение, как показано ниже, bindService возвращает false, служба не запускается и приложение не падает.

    private LocationUpdateService mService;
    Activity activity = this.cordova.getActivity();
    updateServiceIntent = new Intent("com.tentforwardconsulting.cordova.bgloc.LocationUpdateService");
    
    Boolean successful = activity.bindService(updateServiceIntent, mConnection, Context.BIND_AUTO_CREATE);
    ComponentName serviceStarted = activity.startService(updateServiceIntent);
    

В любом случае, logcat отображает следующую ошибку:

ContextImpl(  704): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1510 com.android.server.StatusBarManagerService.sendNotification:981 com.android.server.StatusBarManagerService.removeNotification:706 com.android.server.NotificationManagerService.cancelNotificationLocked:2455 com.android.server.NotificationManagerService.access$5100:160 

Мой androidManifest.xml имеет следующие настройки фильтра намерений. Я попытался поймать обе мои намеренные установки:

<activity android:name="com.tentforwardconsulting.cordova.bgloc.BackgroundGpsPlugin">
    <intent-filter>
        <action android:name="com.tentforwardconsulting.cordova.bgloc.LocationUpdateService" />
        <action android:name="LocationUpdateService" />
    </intent-filter>
</activity>
<service android:enabled="true" android:name="com.tenforwardconsulting.cordova.bgloc.LocationUpdateService" android:process=":remote" />

Пожалуйста, дайте мне знать, какие у вас есть идеи по устранению неполадок. Я играл с комбинациями намерений и фильтров намерений некоторое время. Я действительно ценю любую помощь!

0 ответов

Другие вопросы по тегам