导航:首页 > 操作系统 > android手机之间通信

android手机之间通信

发布时间:2022-11-05 17:59:54

① 请教android手机之间如何通信

你可以使用一个蓝牙串口模块,与单片机连接很方便,通信协议和串口通信是一样的。蓝牙串口模块不知道能不能通信2-300米。。还有一个方案的是使用SIM9000A模块,通过GPRS通信,需要借助花生壳软件实现,只要有GPRS网络的地方都可以通信,距离长。...

② 如何用socket实现android手机与手机之间的通信

有两种方案:
1、在PC机上建立服务器,手机与手机之间的通信通过服务器进行中转
2、一部手机作为服务器,另一部手机作为客户端接入该手机
一般用第一种方案,示例代码如下:
1、pc端:
serverSocket=new ServerSocket(5648); //在5648端口进行侦听
Socket sk = serverSocket.accept();//如果有接入,则创建对应的socket;

2、手机端:
socket=new Socket("tobacco5648.xicp.net",5648);//连接socket

3、消息输入输出:
pw=new PrintWriter(socket.getOutputStream()); //消息输出
pw.println("发送消息");
pw.flush();

br=new BufferedReader(new InputStreamReader(socket.getInputStream())); //消息接收
while((str=br.readLine())!=null){
//接收消息
}

③ Android 多个手机 wifi互相通信怎么实现

做成服务器与客户端的模式,把一台手机作为服务器,然后其他手机设置为客户端。就可以实现间接通信。

④ android手机与pc通讯

Android手机和PC通信,即USB的通信支持有两种模式:

  1. HOST模式:Android设备为USB总线和外设供电,数据传输是双向的。

  2. Accessory模式:即附件模式,Android作为附件,手机和电脑连接,通常是这种模式,由USB Device端向总线供电,数据传输方向是双向的。这就是为什么手机插到电脑上可以充电的原因。


在讨论具体代码之前,需要先讲一下再host模式下面的调试办法,因为数据线的端口被外设使用了,那么,传统的连接数据线调试的方法已经不行了。官网给出了解决办法:

1、请把Android设备用数据线连接到电脑,当然,也要把Android设备的wifi打开。

2、在windows命令行下,进入SDKplatform-tools/目录(具体看SDK安装在哪个目录了),执行adb tcpip 5555回车。这里其实是打开了adb调试的无线端口(Android设备在电脑上的端口映射),其实后面的数字可以随便来,只要端口没有被占用。

3、adb connect <device-ip-address>:5555键入回车,这里的device-ip-address是Android端的IP地址。

4、最后adb usb回车,假如没有问题,现在已经可以在eclipse上看到logcat的输出了。


其实还有个简单的办法,可以在应用商店上下一个无线ADB工具,随便哪个都可以,这类工具就是在Android端做了上面的那些工作,而且还不用连数据线,但是第三步的那个操作还是要在windows的命令行窗口手动输入的。

⑤ Android手机如何与其他Android设备连接USB进行通信

你好,你可以先到网上下载ADB联机驱动,在安装,就可以了

⑥ android开发 实现两个手机间信息的传送

这是获取自己位置经纬度的代码:
f(location != null){

double lit = location.getLongitude();//进度

double dimen = location.getLatitude();//维度

longitude.setText(""+lit);

this.dimensions.setText(""+dimen);

}else{

longitude.setText("get longitude fail");

dimensions.setText("get dimensions fail");

}
在Android 中通过LocationManager 来获取Location .通常获取Location 有GPS 获取,WIFI 获取。
需要添加权限:<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

获取了经纬度以后,发送就好办了啊!
两个手机之间通讯,一般就是短信、蓝牙这些最常用了。
短信不用说,给你个蓝牙的文章吧:
http://blog.sina.com.cn/s/blog_87e9acae010116c5.html

还有什么问题,可以说说,望采纳!

⑦ Android手机之间怎么通过网络通话

网络电话。电信,联通,移动肯定有 相对应的 服务器接口api。 你得公司去申请(以前公司做过)。就是调用相关api然后自动成功 跟sim卡一样的电话拨打功能。要么你就自己写一个。不过这个你确定有服务器和交换机去做处理?

⑧ android如何与手机进行通信(Socket连接)

其实跟电脑差不多了,android里调用socket的方法,拿到socket后就可以发送数据并接收数据。

我最近正在做android方面的通信,真的想把完整的代码都给你,可是没办法,公司机密。。

给你我的socket连接类吧。。。

package sean.socket;

///////////把MyType的一些方法替换成Writer的方法
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

import sean.Sysout;
import sean.business.BusinessCenter;
import sean.business.LoginManager;
import sean.format.MyType;
import sean.io.Reader;
import sean.transfer.BytesBuffer;
import sean.transfer.DataCenter;

public class SocketThread implements Runnable {

String Server = "";
int Port = 0;
static Socket cs = null;
// Thread ioThread=null;
static boolean bool_SocketThread = false;
static OutputStream output = null;

public SocketThread(String server, int port) {
Server = server;
Port = port;
bool_SocketThread = true;
}

@Override
public void run() {
// TODO Auto-generated method stub
while (bool_SocketThread) {
try {
// if (cs == null) {
DataCenter.setBool_Login(false);// 设置登录失败
Sysout.println("正在尝试连接ClientSocket...", Sysout.TempOutDebug);
cs = new Socket(InetAddress.getByName(Server), Port);
if (cs != null) {
Sysout.println("ClientSocket连接成功!__" + cs,
Sysout.TempOutDebug);
cs.setKeepAlive(true);//让socket保持活动状态

InputStream input = cs.getInputStream();
output = cs.getOutputStream();
BusinessCenter.sendLoginData();

BytesBuffer bBuffer = new BytesBuffer();
byte[] Buffer = new byte[1024];
int ReadBytes = input.read(Buffer);
while (ReadBytes != -1) {
Sysout.println("已读取" + ReadBytes + "个字节到缓冲区",
Sysout.TempOutDebug);
byte[] b = new byte[ReadBytes];
b = MyType.BytesInsertToBytes(Buffer, b, 0);
Reader r = new Reader(b);
Sysout.println(r.toString() + "____ReadBytes=="
+ ReadBytes, Sysout.TempOutDebug);
bBuffer.InsertToBuffer(Buffer, ReadBytes);
ReadBytes = input.read(Buffer);
}
} else {
Sysout.printException("ClientSocket连接失败!请确认网络正常且服务器已开启。");
}
// }
// 执行到这里说明inputstream.read()已中断,说明socket已断开连接
// cs=null;
LoginManager.setLoginValue(-1);// 业务中心登录注销,即登录管理器注销登录
DataCenter.setBool_Login(false);// 数据中心登录注销
Sysout.printException(cs + "已断开。");
Thread.sleep(2 * 1000);// 睡眠2秒后继续循环

// try {
// // 判断ClientSocket是否已断开
// cs.sendUrgentData(0);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// Sysout.printException("ClientSocket已断开,重新连接。"+e);
// cs.close();
// cs = null;
// }
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
Sysout.printException("SocketThread.java====解析服务器名称发生异常!" + e);
// e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
Sysout.printException("SocketThread发生IO异常,异常消息:" + e);
try {
if (cs != null) {
Sysout.println("准备关闭" + cs, Sysout.TempOutDebug);
cs.shutdownOutput();
cs.shutdownInput();
cs.close();
cs = null;
output = null;
LoginManager.setLoginValue(-1);// 业务中心登录注销,即登录管理器注销登录
DataCenter.setBool_Login(false);// 数据中心登录注销
Sysout.println(cs + "已关闭。", Sysout.TempOutDebug);
}
try {
Thread.sleep(5000);
} catch (InterruptedException e2) {
// TODO Auto-generated catch block
Sysout.printException("SocketThread.java====线程睡眠异常!!"
+ e2);
// e2.printStackTrace();
}
String ExceptionInfos=e.toString();
if(ExceptionInfos.endsWith("Connection refused")){
stopSocketThread();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
Sysout.printException(cs + "关闭发生异常::" + e1);
// e1.printStackTrace();
try {
Thread.sleep(5000);
} catch (InterruptedException e2) {
// TODO Auto-generated catch block
Sysout.printException("SocketThread.java====线程睡眠异常!!"
+ e2);
// e2.printStackTrace();
}
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}// while(bool_SocketThread)
Sysout.println("SocketThread已停止。", Sysout.TempOutDebug);
}

public static Socket getSocket() {
return cs;
}

// public void setBool(boolean bool0) {
// bool_SocketThread = bool0;
// }

public static OutputStream getOutputStream() {
return output;
}

public static void stopSocketThread() {
try {
// 停止SocketThread线程,必须先把循环的标志bool_SocketThread置为false,否则可能继续循环,重新建立socket连接
bool_SocketThread = false;
// 关闭socket
if (cs != null) {
cs.shutdownOutput();
cs.shutdownInput();
cs.close();
cs = null;
output = null;

Sysout.println("ClientSocket已被强制关闭。");
// LoginManager.setLoginValue(-1);// 业务中心登录注销,即登录管理器注销登录
// DataCenter.setBool_Login(false);// 数据中心登录注销
// byte[] lock=LoginActivity.getLock();
// synchronized(lock){
// lock.notify();
// }
}
} catch (IOException e) {
// TODO Auto-generated catch block
Sysout.printException("强制关闭" + cs + "发生异常::" + e);
// e.printStackTrace();
}
}

}

必须先在android里启动一个服务,由服务去启动这个socket线程,因为如果是UI去启动的话,页面会卡住。。。

⑨ 如何用socket实现android手机与手机之间的通信

有两种方案: 1、在PC机上建立服务器,手机与手机之间的通信通过服务器进行中转 2、一部手机作为服务器,另一部手机作为客户端接入该手机 一般是第一种方案 示例代码: 1、pc端: serverSocket=new ServerSocket(5648); //在5648端口进行侦听 Socket sk = serverSocket",5648);//连接socket 3、消息输入输出: pw=new PrintWriter(socket.getOutputStream()); //消息输出 pw.println("发送消息"); pw.flush(); br=new BufferedReader(new InputStreamReader(socket.getInputStream())); //消息接收 while((str=br.readLine())!=null){ //接收消息 }

阅读全文

与android手机之间通信相关的资料

热点内容
dvd光盘存储汉子算法 浏览:758
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:383
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362
数据查询网站源码 浏览:151
伊克塞尔文档怎么进行加密 浏览:893
app转账是什么 浏览:163