基本代码也是参考http://blog.csdn.net/wufenglong/article/details/5778862的,按照自己的理解整理下,便于自己理解,不算原创。
1、使用的是Socket通信,据说有更高端的方法,如AOA 等,没有试验,因为我使用的设备版本很低,好像不支持,但是adb应该是都有的
2、我是把Android设备要做服务器,PC做客户端。因为Android设备的IP默认为127.0.0.1,端口号是PC通过端口转发确定的,比较好获得,如果反过来,PC做服务器的话,Android设备还要去知道PC的IP和端口号
3、基本流程:USB连接后,PC端通过adb命令下发一条广播信息,Android设备有一个类接收到广播,启动Android设备端对应的一个服务,之后PC端通过端口转发与手操器建立SOCKET连接,就可以随意发点什么了。
一步一步来看:
一、一个接受广播类
若接收到启动指令,启动服务;接收到停止指令,停止服务。
public class ServiceBroadcastReceiver extends BroadcastReceiver {
private static String START_ACTION = "NotifyServiceStart";
private static String STOP_ACTION = "NotifyServiceStop";
@Override
public void onReceive(Context context, Intent intent) {
//Log.d(androidService.TAG, Thread.currentThread().getName() + "---->"
// + "ServiceBroadcastReceiver onReceive");
String action = intent.getAction();
if (START_ACTION.equalsIgnoreCase(action))
{
context.startService(new Intent(context, androidService.class));
}
else if (STOP_ACTION.equalsIgnoreCase(action))
{
context.stopService(new Intent(context, androidService.class));
}
}
}
二、