Я пытаюсь запустить связанный (в конечном счете удаленный) сервис Android через Intent
. Если я создаю Intent
со ссылкой на класс Service
(см. Переменную ii ниже), он работает. Если я создаю Intent
, используя Строки для имени класса, bindService
терпит неудачу.Как запустить связанный сервис с помощью намерения без класса
В конечном счете, я хочу, чтобы второе приложение получило доступ к моему сервису, который не будет иметь класс Service
внутри него (это то, как работают удаленные сервисы ...? Не так ли?) - следовательно, желание создать Intent
без ссылки на объект класса.
//this Intent works
Intent ii = new Intent(this, MyService.class);
//this Intent doesn't
Intent i = new Intent();
i.setClassName("com.ghee", "MyService");
boolean b = bindService(ii,
mSvcConn,
Context.BIND_AUTO_CREATE);
if(!b) {
Log.d(TAG, "bindService returned false...");
}
Если это помогает, вот большинство манифеста:
<application android:icon="@drawable/icon">
<activity android:name=".MyActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="com.ghee.MyService" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".MyService"
android:exported="true"
android:process=":remote">
</service>
</application>
попробовать Intent.setClassName (Context packageContext, String Classname), и вы увидите, где вы не удалось – pskink