
|
设备连接API
|
使用 友机互联网的连接管理器,是将设备连接起来的最简单的方法。应用程序可以完全不需要设置连接的代码, 而是利用现有的组件。
友机互联网的连接管理器支持以下的连接策略:
- 如果所处的WiFi网络支持“组播”功能或者使用WI-FI直联,友机互联网的连接管理器可以用“组播”自动搜索找到网上所有的邻近
设备. 如果事先设置成“自动连接”的话,友机互联网的连接管理器会把这些设备自动连接起来。
- 如果所处的WiFi网络不支持“组播”功能,友机互联网的连接管理器允许您手动输入相邻设备的IP地 址进行连接。
- 友机互联网的连接管理器提供各种参数,使您可以用控制连接过程。
应用程序可以使用下面两行代码启动友机互联网的连接管理器:
Intent intent = new
Intent("com.xconns.peerdevicenet.CONNECTION_MANAGEMENT");
startActivity(intent);
如果应用程序需要自己独有的连接方式,它可以直接使用连接服务的API。使用连接服务的API的应用程序,需要在它的
AndroidManifest.xml添加以下权限:
<uses-permission
android:name="com.xconns.peerdevicenet.permission.REMOTE_MESSAGING"
/>
友机互联网 支持以下3种连接服务的API:
- Intents API
应用程序可以用startService()发送以下的Intents:
- 搜索和查找对等设备的intent actions:
ACTION_START_SEARCH
=“com.xconns.peerdevicenet.START_SEARCH”
ACTION_STOP_SEARCH =“com.xconns.peerdevicenet.STOP_SEARCH”
ACTION_CONNECT
=“com.xconns.peerdevicenet.CONNECT"
ACTION_DISCONNECT =“com.xconns.peerdevicenet.DISCONNECT”
ACTION_ACCEPT_CONNECTION
=“com.xconns.peerdevicenet.ACCEPT_CONNECTION”
ACTION_DENY_CONNECTION
=“com.xconns.peerdevicenet.DENY_CONNECTION”
应用程序应该登记一个广播接收器,来处理下面的连接事件:
ACTION_SEARCH_FOUND_DEVICE
=“com.xconns.peerdevicenet.SEARCH_FOUND_DEVICE”
ACTION_SEARCH_COMPLETE
=“com.xconns.peerdevicenet.SEARCH_COMPLETE”
ACTION_CONNECTING =“com.xconns.peerdevicenet.CONNECTING”
ACTION_CONNECTION_FAILED
=“com.xconns.peerdevicenet.CONNECTION_FAILED”
ACTION_CONNECTED =“com.xconns.peerdevicenet.CONNECTED”
ACTION_DISCONNECTED =“com.xconns.peerdevicenet.DISCONNECTED”
- IDL API
应用程序可以绑定到以下命名的服务进行连接设置:
ACTION_CONNECTION_SERVICE
=“com.xconns.peerdevicenet.ConnectionService”。
一旦绑定,这个连接服务提供以下的异步界面:
IRouterConnectionService {
//peer device discovery/search api
oneway void startPeerSearch(int sessionId,
int timeout);
oneway void stopPeerSearch(int sessionId)
//connection api
oneway void connect(int sessionId, in
DeviceInfo peer, in byte[] token, int timeout);
oneway void disconnect(int sessionId, in
DeviceInfo peer);
oneway void acceptConnection(int sessionId,
in DeviceInfo peer);
oneway void denyConnection(int sessionId, in
DeviceInfo peer, int rejectCode);
}
应用程序将登记具有以下界面的软件,处理与连接相关的事件:
IRouterConnectionHandler {
oneway void
onSearchFoundDevice(in DeviceInfo device);
oneway void onSearchComplete();
oneway void onConnecting(in DeviceInfo
device, in byte[] token);
oneway void onConnectionFailed(in DeviceInfo
device, int rejectCode);
oneway void onConnected(in DeviceInfo
device);
oneway void onDisconnected(in DeviceInfo
device);
}
- Messenger API
应用程序可以用以下的消息ID,发送连接设置的信息:
public final static int
START_SEARCH = -10200;
public final static int STOP_SEARCH = -10201;
public final static int CONNECT = -10300;
public final static int DISCONNECT = -10301;
public final static int ACCEPT_CONNECTION = -10302;
public final static int DENY_CONNECTION = -10303;
应用程序需要处理与以下连接相关的事件:
public final static int
SEARCH_FOUND_DEVICE = -10210;
public final static int SEARCH_COMPLETE = -10211;
public final static int CONNECTING = -10310;
public final static int CONNECTION_FAILED = -10311;
public final static int CONNECTED = -10312;
public final static int DISCONNECTED = -10313;