服务端:
public class ThirdCloudService extends Service {
private static final String TAG = ThirdCloudService.class.getSimpleName();
private ThirdCloudBinderManager thirdCloudBinderManager;
@Nullable
@Override
public IBinder onBind(Intent intent) {
if (thirdCloudBinderManager == null) {
Logger.d(TAG, "onBind() threeCloudBinderManager == null");
return null;
}
return thirdCloudBinderManager.asBinder();
}
@Override
public void onCreate() {
super.onCreate();
Logger.d(TAG, "onCreate()");
thirdCloudBinderManager = new ThirdCloudBinderManager();
}
}
AIDL
package com.xxx.xxx.xxx;
// Declare any non-default types here with import statements
interface IResultCallback {
void success(String token);
void error(String errorCode, String errorMsg);
}
AndroidManifest.xml
<service
android:name="com.xxx.xxx.ThirdCloudService"
android:exported="true"
android:permission="com.xx.x.x.xx.x">
<intent-filter>
<action android:name="com.xxx.xxx.xxxx.xxx" />
</intent-filter>
</service>
客户端
Intent intent = new Intent();
//跨进程通信需要使用action启动
intent.setAction("com.xxx.xxx.xxxx.xxx");
intent.setPackage("com.xxx.xxx.xxx");
//开启Service
context.bindService(intent, mConnection, Service.BIND_AUTO_CREATE);
AndroidManifest.xml
<permission android:name="com.xx.x.x.xx.x" />
<uses-permission android:name="com.xx.x.x.xx.x" />
<queries>
<intent>
<action android:name="com.xxx.xxx.xxxx.xxx" />
</intent>
</queries>