1、服务端
1、新建一个AIDL文件。
2、新建一个Service java文件
@Override public IBinder onBind(Intent intent) { System.out.println("NotificationServer: " + "onBind"); return binder; } private final IBinder binder = new INotificationInterface.Stub() { @Override public void sendNotification(int id, String title, String text, String channelId, String channelName) throws RemoteException { } };
3、AndroidManifest.xml 文件中注册
<service android:name=".NotificationServer" android:enabled="true" android:exported="true"> <!-- <intent-filter>--> <!-- <action android:name="com.boxing.aitest.notification.aidl" />--> <!-- </intent-filter>--> </service>
2、客户端
1、拷贝AIDL文件到客户端、保持包名和服务端一致2、在AndroidManifest.xml设置服务端的包名
<queries> <package android:name="boxing.aitest.notification"/> </queries>
3、
Intent intent = new Intent(); intent.setComponent(new ComponentName("boxing.aitest.notification","boxing.aitest.notification.NotificationServer")); // intent.setAction("com.boxing.aitest.notification.aidl"); // intent.setPackage("boxing.aitest.notification"); bindService(intent, mConnection, Context.BIND_AUTO_CREATE); ServiceConnection mConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { System.out.println("NotificationServer: " + "onServiceConnected"); iNotificationInterface = INotificationInterface.Stub.asInterface(iBinder); } @Override public void onServiceDisconnected(ComponentName componentName) { System.out.println("NotificationServer: " + "onServiceDisconnected"); } };
Android AIDL 实现
最新推荐文章于 2024-04-27 09:13:51 发布