如何将我的服务绑定到两个客户端?

问题描述 投票:0回答:1

我有一个后台服务运行,我想使用AIDL能够与第三方应用程序进行通信。我尝试使用AIDL进行应用程序通信,它运行良好。

我的问题是如果我想与另一个应用程序通信,如何过滤哪个应用程序目前正在绑定?

我尝试过滤:

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    Log.d("INTENT",intent.getDataString())
    return (new IpPortBinder(getApplicationContext()));
}

但它崩溃了,因为由于某种原因,intent.getDataString()为null。我应该在这里使用哪种方法?

android service aidl
1个回答
0
投票

您可以过滤服务项目的androidmanifest文件中的意图。步骤如下:1)在服务的清单文件中定义过滤器。

<service android:name="com.x.y.servicename">
  <intent-filter >  
    <action android:name="getdata" />  
  </intent-filter>  
</service> 

2)在调用绑定服务时,使用此意图从客户端应用程序调用bindservice

            Intent i=new Intent();
            i.setAction("getdata");
            ret=actContext.bindService(i, AddServiceConnection, Service.BIND_AUTO_CREATE);

可以从活动代码中的ServiceConnection的实例定义调用步骤2。

© www.soinside.com 2019 - 2024. All rights reserved.