- 浏览: 228500 次
- 性别:
- 来自: 广州
最新评论
-
Janne:
你好 有源代码?可以发到我的邮箱里学学吗?2731049993 ...
achartengine画出动态折线图的效果 -
anbo724:
我的邮箱 anbo724@gmail.com谢谢@
achartengine画出动态折线图的效果 -
anbo724:
你好 请问有源码没《?谢谢
achartengine画出动态折线图的效果 -
weiday123:
额,觉得这个会不会占堆内存?
AdapterView、Adapter优化 -
wen742538485:
为什么没有呢?权限没加还是发创建了给你删了再想创建?是不允许重 ...
Android中为你的应用程序添加桌面快捷方式
http://www.cyqdata.com/android/article-detail-53225#
如何实现Android蓝牙通信?一般通过使用蓝牙虚拟串口,可以通过配置非常简单地实现,很多外置蓝牙GPS都用这种做法。
然而Android却不支持,因此不得不得使用第二种方式:蓝牙socket。
本示例不使用C++开发,借助于第三方.NET组件inthehand来实现。
手机端的初始化代码。其中的具体含义可参照http://android.tgbus.com/Android/tutorial/201103/346657.shtml。
private PrintStream mPrintStream = null;
private BufferedReader mBufferedReader = null;
BluetoothAdapter myBluetoothAdapter = null;
BluetoothServerSocket mBThServer = null;
BluetoothSocket mBTHSocket = null;
myBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
myBluetoothAdapter.enable();//open bth
Intent discoverableIntent = new Intent(
BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);//使得蓝牙处于可发现模式,持续时间150s
discoverableIntent.putExtra(
BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 150);
下面是PC上的初始化核心代码:PC是作为客户端出现的。它需要通过搜索获取手机的蓝牙MAC地址,实现通信。GUID又名UUID,是标记硬件地址的一种方法。
/// <summary>
/// 打开端口
/// </summary>
/// <param name="Name">端口名称</param>
/// <returns>成功否</returns>
public bool OpenPort(string Name)
{
InTheHand.Net.Bluetooth.BluetoothRadio.PrimaryRadio.Mode = InTheHand.Net.Bluetooth.RadioMode.Connectable;
InTheHand.Net.Sockets.BluetoothClient cli = new InTheHand.Net.Sockets.BluetoothClient();
InTheHand.Net.Sockets.BluetoothDeviceInfo[] devices = cli.DiscoverDevices();
foreach (InTheHand.Net.Sockets.BluetoothDeviceInfo device in devices)//设备搜寻
{
device.Update();
device.Refresh();
MessageBox.Show("设备已找到");
break;
}
BluetoothDeviceInfo bd = new BluetoothDeviceInfo(devices[0].DeviceAddress);
bluetoothClient = new BluetoothClient();
Guid mGUID = Guid.Parse("fa87c0d0-afac-11de-8a39-0800200c9a66");
bluetoothClient.Connect(devices[0].DeviceAddress, mGUID);//客户端对地址实现连接,这是一个阻塞线程,需要服务器端的回应
ReceiveThread = new Thread(ReceiveMethod);
ReceiveThread.Start();
return true;
}
下面是手机接受PC端连接请求的方法:
1 if (connected)
2 {
3 return;
4 }
5 try
6 {
7 mBThServer = myBluetoothAdapter
8 .listenUsingRfcommWithServiceRecord(NAME_SECURE,
9 MY_UUID_SECURE);
10 } catch (IOException e)
11 {
12 // TODO Auto-generated catch block
13 e.printStackTrace();
14 }
15
16 try
17 {
18 mBTHSocket = mBThServer.accept();
19 } catch (IOException e)
20 {
21 // TODO Auto-generated catch block
22 e.printStackTrace();
23 }
24 try
25 {
26 mBufferedReader = new BufferedReader(new InputStreamReader(
27 mBTHSocket.getInputStream()));
28 } catch (IOException e1)
29 {
30 // TODO Auto-generated catch block
31 e1.printStackTrace();
32 }// 取得输入、输出流
33 try
34 {
35 mPrintStream = new PrintStream(
36 mBTHSocket.getOutputStream(), true);
37 connected = true;
38 } catch (IOException e)
39 {
40 // TODO Auto-generated catch block
41 e.printStackTrace();
42 }
要通过手机发送数据,执行以下代码即可:
mPrintStream.write(buff);
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}// 发送给服务器
mPrintStream.flush();
PC端的接受代码:
while (isConnecting)
{
try
{
Stream peerStream = bluetoothClient.GetStream();
peerStream.Read(buffer, 0, PACKETLENGTH);
//dataprocess();
}
catch (Exception ex)
{
isConnecting = false;
MessageBox.Show(ex.ToString());
}
以下有几个需要注意事项:
1:inthehand.net.personal是PC端上一定要用得到的库,但注意这个库函数的版本,版本弄错了是很浪费时间的。
2:手机设备的蓝牙硬件权限要打开,否则就没法运行。
如何实现Android蓝牙通信?一般通过使用蓝牙虚拟串口,可以通过配置非常简单地实现,很多外置蓝牙GPS都用这种做法。
然而Android却不支持,因此不得不得使用第二种方式:蓝牙socket。
本示例不使用C++开发,借助于第三方.NET组件inthehand来实现。
手机端的初始化代码。其中的具体含义可参照http://android.tgbus.com/Android/tutorial/201103/346657.shtml。
private PrintStream mPrintStream = null;
private BufferedReader mBufferedReader = null;
BluetoothAdapter myBluetoothAdapter = null;
BluetoothServerSocket mBThServer = null;
BluetoothSocket mBTHSocket = null;
myBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
myBluetoothAdapter.enable();//open bth
Intent discoverableIntent = new Intent(
BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);//使得蓝牙处于可发现模式,持续时间150s
discoverableIntent.putExtra(
BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 150);
下面是PC上的初始化核心代码:PC是作为客户端出现的。它需要通过搜索获取手机的蓝牙MAC地址,实现通信。GUID又名UUID,是标记硬件地址的一种方法。
/// <summary>
/// 打开端口
/// </summary>
/// <param name="Name">端口名称</param>
/// <returns>成功否</returns>
public bool OpenPort(string Name)
{
InTheHand.Net.Bluetooth.BluetoothRadio.PrimaryRadio.Mode = InTheHand.Net.Bluetooth.RadioMode.Connectable;
InTheHand.Net.Sockets.BluetoothClient cli = new InTheHand.Net.Sockets.BluetoothClient();
InTheHand.Net.Sockets.BluetoothDeviceInfo[] devices = cli.DiscoverDevices();
foreach (InTheHand.Net.Sockets.BluetoothDeviceInfo device in devices)//设备搜寻
{
device.Update();
device.Refresh();
MessageBox.Show("设备已找到");
break;
}
BluetoothDeviceInfo bd = new BluetoothDeviceInfo(devices[0].DeviceAddress);
bluetoothClient = new BluetoothClient();
Guid mGUID = Guid.Parse("fa87c0d0-afac-11de-8a39-0800200c9a66");
bluetoothClient.Connect(devices[0].DeviceAddress, mGUID);//客户端对地址实现连接,这是一个阻塞线程,需要服务器端的回应
ReceiveThread = new Thread(ReceiveMethod);
ReceiveThread.Start();
return true;
}
下面是手机接受PC端连接请求的方法:
1 if (connected)
2 {
3 return;
4 }
5 try
6 {
7 mBThServer = myBluetoothAdapter
8 .listenUsingRfcommWithServiceRecord(NAME_SECURE,
9 MY_UUID_SECURE);
10 } catch (IOException e)
11 {
12 // TODO Auto-generated catch block
13 e.printStackTrace();
14 }
15
16 try
17 {
18 mBTHSocket = mBThServer.accept();
19 } catch (IOException e)
20 {
21 // TODO Auto-generated catch block
22 e.printStackTrace();
23 }
24 try
25 {
26 mBufferedReader = new BufferedReader(new InputStreamReader(
27 mBTHSocket.getInputStream()));
28 } catch (IOException e1)
29 {
30 // TODO Auto-generated catch block
31 e1.printStackTrace();
32 }// 取得输入、输出流
33 try
34 {
35 mPrintStream = new PrintStream(
36 mBTHSocket.getOutputStream(), true);
37 connected = true;
38 } catch (IOException e)
39 {
40 // TODO Auto-generated catch block
41 e.printStackTrace();
42 }
要通过手机发送数据,执行以下代码即可:
mPrintStream.write(buff);
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}// 发送给服务器
mPrintStream.flush();
PC端的接受代码:
while (isConnecting)
{
try
{
Stream peerStream = bluetoothClient.GetStream();
peerStream.Read(buffer, 0, PACKETLENGTH);
//dataprocess();
}
catch (Exception ex)
{
isConnecting = false;
MessageBox.Show(ex.ToString());
}
以下有几个需要注意事项:
1:inthehand.net.personal是PC端上一定要用得到的库,但注意这个库函数的版本,版本弄错了是很浪费时间的。
2:手机设备的蓝牙硬件权限要打开,否则就没法运行。
发表评论
-
Android Tween动画之RotateAnimation实现图片不停旋转
2012-11-26 22:38 1038本文主要介绍Android中如何使用rotate实现图片不停旋 ... -
Android实现widget定时更新
2012-11-04 20:20 880在开发Android的widget时,第一个需要解决的问题就是 ... -
来自腾讯、谷歌、百度等名企的精选面试五十题
2012-10-07 23:08 898http://www.apkway.com/thread-90 ... -
Android 中Parcelable的作用
2012-09-24 09:53 833android提供了一种新的类型:Parcel。本类被用作封装 ... -
[Android算法] 【eoeAndroid索引】史上最牛最全android开发知识汇总
2012-09-13 09:33 1093http://www.eoeandroid.com/threa ... -
安卓航班推荐70个具有商业实战性的精品Android源码
2012-08-01 00:00 911http://www.apkway.com/thread-58 ... -
Android测试教程汇总
2012-08-02 14:51 1057http://www.apkway.com/thread-67 ... -
Service 与 Thread 的区别
2012-07-26 00:10 872Service 与 Thread 的区别 很多时候,你可能 ... -
android 使用百度地图画轨迹
2012-07-26 00:08 2578import android.content.Context ... -
android百度地图半径画圆
2012-07-26 00:07 2692Java代码 import android.content ... -
Android下获取开机时间
2012-07-26 00:05 1297我的思路是:程序里注册个广播接收器,接收开机启动的广播,当程序 ... -
android 高仿【优酷】圆盘旋转菜单 的实现
2012-07-26 00:03 1331MyAnimation.java Java代码 pack ... -
android 3D 转盘效果(附源码)
2012-07-25 23:41 1777一个仿3D的转盘效果,有倒影特效,旋转图标还可自动放大缩小。由 ... -
Android Thread
2012-07-23 10:47 1009创建新线程的常用方式: 1. 直接使用Thread创建 ... -
Android 通过手说tts中文语音包实现中文朗读
2012-07-22 17:09 1775Android 通过手说tts中文语音包实现中文朗读 ... -
Android 使用HTTPClient调用Web请求(查询手机号码区域)
2012-07-21 00:33 1198Android通过Apache HttpClient调用网上提 ... -
Android+struts2+JSON方式的手机开发
2012-07-21 00:14 1136http://topmanopensource.iteye.c ... -
android九宫格实现
2012-07-21 00:03 936android九宫格实现,开始以为很复杂,其实只要知道了如何布 ... -
Android ListView圆角实现
2012-07-20 23:59 1173在android上开发项目,如 ... -
Android 将一个Activity转化为View显示出来
2012-07-19 10:27 2063最近看到好多opengl牛人写了些立方体,卷页之类的华丽的代码 ...
相关推荐
Android通过socket套接字实现网络连接,通过ip地址和ip端口实现访问服务器,从而实现客户端和服务器的连接,然后实现两者数据的互连
android_studio手机蓝牙串口通信源代码,我自己已经下载到手机上调试过,可以用。讲解清楚,十分受用!
-一台设备作为服务端,一台作为客户端,两台设备需要先蓝牙配对成功,然后才能开始打开APP进行操作。 - 一台手机作为服务端,右上方顶部ActionBar有一个按钮,点击后从本地图库添加图片和拍照获取图片。中间是...
android蓝牙开发小例子,实现了搜索蓝牙设备,发送请求建立连接,蓝牙设备间的socket通信。
android设备的蓝牙作为客户端实现与 windows PC端蓝牙进行通信聊天,pc端为windows x64,java bluecove实现,此为android端的代码,服务端已经上传了,查看以前上传的资源
内容包括Android开发技术基础、搭建Android应用开发环境、获取并编译源码、Android技术核心框架分析、HTTP网络通信、使用Socket实现数据通信、下载远程数据、上传数据、使用URL处理数据、处理XML数据、在穿戴设备中...
基于Bluez实现了蓝牙串口通信,用来与手机端,pc端传输数据。蓝牙模块服务多种多样,这个小demo实现了linux下建立蓝牙服务端的demo,并带了一个客户端测试。 使用时,可通过两台设备,分别作为服务端可客户端,连接...
内含两个独立的模块:蓝牙通信和Cors...其中蓝牙通信是在android sdk中提供的关于蓝牙的sample的基础上修改完成的,cors网络通信则是本人自己根据项目需要结合socket网络编程技术完成的,经测试能正常拿到差分数据。
然后介绍了基于Socket实现的蓝牙通信,以及基于蓝牙实现对等结构网络通讯。我们还介绍了蓝牙r发现服务协议的使用。 Android 蓝牙开发基本流程https://blog.csdn.net/q610098308/article/details/45248423android ...
android蓝牙连接打印机.rar samsung android 蓝牙4.0开发工具包和BLE例子.rar wifi信息扫描和rssi值检测.rar 【仿微信即时聊天】xmpp4Android 第一期.rar 串口开发的demo,里面包含JNI文件.rar 串口编程资料.rar ...
第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 ...
PC端使用java bluecove实现蓝牙服务端,与android设备的蓝牙进行通信聊天,bluecove为x64操作系统,此为服务端的代码,android端也已经上传,我的资源列表中找
该项目是个人研究的Android蓝牙聊天项目,搜索附近蓝牙设备功能,可以通过蓝牙通信聊天。通过该项目,可以学习到蓝牙通信协议,通过学习BluetoothSocket和BluetoothServerSocket,同时也可以熟练掌握Socket与...
Android手机间通过蓝牙方式进行通信,有两种常见的...其实无论是socket方式还是Gatt,Android设备间蓝牙通信都是一种CS(client-server)模式。 1)socket服务端: 使用listenUsingInsecureRfcommWithServiceRecord接口
本项目是一个基于安卓的蓝牙聊天项目源码也是本站分享的第三个蓝牙聊天项目源码(前两个自行在本站搜索),原理是两个设备想要通信的前提是要知道对方的存在,在普通的Socket开发中,只要一台设备上线,直接发送个...
本文以实例的方式讲解Android蓝牙开发的知识。 1、使用蓝牙的响应权限 XML/HTML代码 <uses android:name=android.permission.BLUETOOTH/> <uses android:name=android.permission.BLUETOOTH_ADMIN/> 2、配置本...
该项目是个人研究的Android蓝牙聊天项目,搜索附近蓝牙设备功能,可以通过蓝牙通信聊天。通过该项目,可以学习到蓝牙通信协议,通过学习BluetoothSocket和BluetoothServerSocket,同时也可以熟练掌握Socket与...
17.3.3 TCP Socket与蓝牙Socket的区别 465 17.3.4 BluetoothChat中的类 466 17.3.5 初始化本地蓝牙设备 467 17.3.6 查找蓝牙设备 471 17.3.7 管理连接 476 17.3.8 互相之间的通信 480 17.4 WiFi通信 484 ...
《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...