我想提供一个可以被其他应用程序调用的服务。因此,我有服务和助手。但是当我尝试使用单独的应用程序来绑定此服务(bindService)时,它只会返回 false,这意味着失败。这是我的代码。
PS:context已经是调用getApplicationContext()得到的ApplicationContext
尝试绑定服务的代码
private static ServiceConnection connection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
sService = XXXService.Stub.asInterface(service);
}
@Override
public void onServiceDisconnected(ComponentName name) {
sService = null;
}
};
private static synchronized XXXService getService(final Context context) {
if (sService != null) {
return sService;
} else {
intent.setClassName(context.getPackageName(), "com.xxx.someservice");
if (context.bindService(intent, connection, Context.BIND_AUTO_CREATE)) {
Log.i(TAG, "can bind");
} else {
Log.i(TAG, "can not bind");
}
return sService;
}
}
AndroidManifest
<service android:name="com.xxx.someservice"
android:process=":main"
android:exported="true"/>