实现pc端通过usb获取到android手机上的短信、通讯录等信息
来源:互联网 发布:linux服务器监控 编辑:程序博客网 时间:2024/04/29 17:55
http://blog.csdn.net/foreverhuylee/article/details/42339843
今天找到了实现原理,其实很简单
当PC与手机连通时,我们可以通过Socket连接来实现PC与手机间的通信。
这里我们先讨论手机做为Server端、PC做为Client端的情况。
服务器端(Android手机):
和其他Java Socket程序一样,只需要定义一个ServerSocket即可实现Server端的监听,如下:
ServerSocket serverSocket = new ServerSocket(SOCKET_PORT); //SOCKET_PORT服务器端端口
//测试过程中的代码
int SOCKET_PORT = 6000; //自己可以修改,一般大于1024即可,但是还有可能与5037等已用端口冲突,最好直接开到6000以上
ServerSocket serverSocket = null;
System.out.println("server enter");
serverSocket = new ServerSocket(SOCKET_PORT);
Socket socket = serverSocket.accept();
客户端(PC端)
写Java Socket的时候,我们都知道,要连上Server,只需要知道Server的IP地址和Port号就可以了。这里因为手机是和PC相连的,因此麻烦就在于怎么定位这个IP地址和Port号。
IP地址其实也就是本机地址,而port号则需要有一点点技巧,需要用到adb工具。查看adb帮助中,有一条forward命令可以用于完全任务:
adb forward <local> <remote> - forward socket connections
使用如下:
adb forward tcp:Local_Port tcp:Remote_Port
也即将本地的Local_Port端口,映射为Remote_Port端口,这里的Remote_Port即为上面的SOCKET_PORT。
所以Client代码可以如下实现:
String adb_path=....;
Runtime.getRuntime().exec(adb_path + " forward tcp:LocalPort tcp:Remote_Port");
Socket socket = new Socket("localhost", Local_Port);
//测试过程中关键代码
int Local_Port = 5557; //一般大于1024即可
String adb_path="E://wts//adb"; //注意PC端一定要有adb.exe和AdbWinApi.dll AdbWinUsbApi.dll,
//把上述三个文件放在wts目录下即可(其实看豌豆荚91助手等安装目录下都有上述三个文件)
//Runtime.getRuntime().exec(adb_path + " forward tcp:LocalPort tcp:Remote_Port");
Runtime.getRuntime().exec(adb_path + " forward tcp:5557 tcp:6000"); //5557为Local_Port ,6000服务器端端口,为了方便直接写入,即上述SOCKET_PORT;
Socket socket = new Socket("localhost", Local_Port);
即可实现PC与Android之间的通信。这里注意Android端需要有网络访问的权限:
<uses-permission android:name="android.permission.INTERNET" />
- 实现pc端通过usb获取到android手机上的短信、通讯录等信息
- 实现pc端通过usb获取到android手机上的短信、通讯录等信息
- Android手机获取通讯录联系人信息及短信广播实现
- Uart2Socket:将PC的串口信息通过WiFi网络传输至安卓Android手机上
- Android:获取手机通讯录中联系人的信息
- Android 获取手机设备等的信息
- Android获取手机的版本号等信息
- Android通过蓝牙获取设备的通讯录、通话记录等
- 获取android手机通讯录中的信息
- 【Android】获取手机通讯录中的联系人信息
- 获取手机通讯录信息
- Android 获取手机的通讯录
- android手机上的信息获取
- 获取手机中通讯录的所有信息
- Android 获取通讯录联系人信息(上)
- android端和pc端使用usb进行socket通信,其中android是服务器端,pc是客户端。如何实现安卓端输入的数据通过按钮发送到pc端?
- Android获取手机通讯录调用系统短信功能
- android 获取手机中的短信信息
- 将Java文件(夹)导入Eclipse
- Linux 简单脚本程序
- 虚函数和纯虚函数的区别
- 2、(知识篇)枚举Enum的使用
- 值得推荐的C/C++框架和库 (真的很强大)
- 实现pc端通过usb获取到android手机上的短信、通讯录等信息
- 234. Palindrome Linked List 判断链表是否回文(C++解决)
- Redis中删除过期Key的三种策略
- jsp及Servlet经典面试题以及答案
- Java、JS中实现无限层级的树形结构(类似递归)
- 解决保存自定义对象时实现Serializable时出现的问题
- [hzxjhs模拟2(T1,T3)][欧拉函数][dp]
- Latex安装与使用
- 3、(知识篇)注解Annotation