Android Bluetopth 编程大牛文章

http://my.oschina.net/u/994235/blog?catalog=313604

ViewGroup 相关资料 :

http://www.incoding.org/admin/archives/199.html

http://bbs.csdn.net/topics/370144745

http://www.linuxidc.com/Linux/2013-01/78109.htm

http://blog.csdn.net/arui319/article/details/5868466

http://www.2cto.com/kf/201109/104633.html

http://www.cnblogs.com/slider/archive/2011/11/24/2262161.html

蓝牙开发指南 :

http://wenku.baidu.com/view/b41c1b09bb68a98271fefae1.html

蓝牙编程 :

http://wenku.baidu.com/link?url=QT1NMnkqNk3Emm_CueUyqtawXyQ2-CNIu5Es6xgtbj2KLUe5Cu5mXo2xDbvnBRLuvH044uiF2Vhcwjz4o8uCdkYYiUV3R71Id4GIdEQsPLe

http://blog.csdn.net/qinjuning/article/details/7726093  BluetoothAdapter类简介

http://www.cnblogs.com/over140/archive/2010/12/21/1912460.html

Android 中文API (69) —— BluetoothAdapter[蓝牙]

http://www.wuphone.com/579.html BluetoothAdapter蓝牙

http://www.cnblogs.com/over140/archive/2010/12/21/1912482.html

BluetoothDevice[蓝牙]



http://blog.csdn.net/hellogv/article/details/6042091 十三篇之探秘蓝牙隐藏API

http://www.cnblogs.com/wanqieddy/archive/2013/05/24/3096312.html 隐藏api介绍

http://www.eoeandroid.com/thread-18993-1-1.html?_dsign=d70c243d Android蓝牙开发浅谈

http://blog.csdn.net/myarrow/article/details/8143717 安卓设备待机广播

http://www.cnblogs.com/fbsk/archive/2011/10/10/2205316.html

Android开机自启动程序

http://wenku.baidu.com/view/6baf53eaaeaad1f346933f85.html

http://android.toolib.net/reference/android/bluetooth/BluetoothServerSocket.html

BlueToothServerSocket API解析

http://jinguo.iteye.com/blog/687357

http://android.toolib.net/reference/android/bluetooth/BluetoothSocket.html

BlueToothSocket API解析

http://blog.csdn.net/xiluoduyu/article/details/8515286

http://www.linuxidc.com/Linux/2012-09/69586.htm

蓝牙模块开发

使用代码打开蓝牙

Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
System.out.println(" 打开蓝牙 ");
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

http://my.oschina.net/billowworld/blog/62975

如何实现android蓝牙开发 自动配对连接,并不弹出提示框



Android中通过静态注册的屏幕开启和屏幕关闭的BroadCastReceiver为什么捕捉不到广播?

android开发中使用AndroidManiFest.xml静态注册的BroadCastReceiver没有作用是什么原因?

使用静态注册,Debug运行,就是没进到onReceive()方法那里去。我用真机调试的。

但是使用动态注册,又可以捕捉到。我想问,这个系统广播可不可以静态注册?如果可以为什么会捕捉不到呢?

在Android 的广播机制中,动态注册的优先级是要高于静态注册优先级的,你是否在调试时2个都注册了,所以出现你的这种情况;当用来注册动态广播接收器的activity被关闭时,这个动态接收器也就是就失效了,静态注册的广播接收器只要有你注册的广播出现就能接收到广播。

对于这两个action:

android.intent.action.SCREEN_OFF
android.intent.action.SCREEN_ON

在AndroidManifest.xml中注册是不可以的。

这有点不同于其他的action,你只有在Service中通过动态注册去监听这个事件。

这个问题我的理解是google故意这么做的,有两点考虑:
1.提高监听screen_on screen_off门槛
这两个事件是android的基本事件,如果呗大多数程序监听,会大大的拖慢整个系统,所以android也应该不鼓励我们在后台监听这两个事件。

2.有让我们在service后台监听
这也是提供了一个解决问题,强调和service共存亡,不会一直在后台无限情运行。

总之应该是为了保证系统的稳定和安全才采取这样的措施。
希望对你有帮助。

蓝牙配对密码设置

先是写个
<receiver android:name=".broadcast.PairingRequest">
                  <intent-filter>
                    <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" /> 
                    <action android:name="android.bluetooth.device.action.PAIRING_CANCEL" /> 
                  </intent-filter>
                </receiver>

然后是你的
public class PairingRequest extends BroadcastReceiver{
  @Override
  public void onReceive(Context context, Intent intent){
    if (intent.getAction().equals("ACTION_PAIRING_REQUEST")) {
            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            byte[] pinBytes = BluetoothDevice.convertPinToBytes("1234");
            device.setPin(pinBytes);
    }
  }
}

其中的蓝牙BluetoothDevice这个类要用源码里的替换下

蓝牙设备是怎么连接的

最前提的条件是有蓝牙的MAC地址; String macAddress;

根据蓝牙的MAC地址 , 可以获得蓝牙设备BluetoothDevice对象 , BluetoothDevice device = bluetoothAdapter.getRemoteDevice(macAddress);

将蓝牙设备对象传入服务中的connect方法中;

将设备连接放在线程中完成 , 创建一个设备连接的线程 , 启动这个线程.

BluetoothAdapter资料 :

关于权限资料

 android.permission.BLUETOOTH 允许程序连接到已配对的蓝牙设备(Allows applications to connect to paired bluetooth devices)
  android.permission.BLUETOOTH_ADMIN 允许程序发现和配对蓝牙设备(Allows applications to discover and pair bluetooth devices)

android蓝牙开发——权限

为了在应用程序中使用蓝牙功能,我们至少需要声明两方面的权限:BLUETOOTH和BLUETOOTH_ADMIN。

你必须请求BLUETOOTH权限才能够实现蓝牙通信,例如请求一个连接、接受一个连接和传输数据。

你必须请求BLUETOOTH_ADMIN权限,才能够初始化device discovery或者管理蓝牙设置(Bluetooth settings)。大多数应用程序必须具有这个权限才能够发现本地蓝牙设备,这个权限保护的其他能力(除了发现本地设备)不应该被使用,除非你的应用程序是在用户请求的时候能够修改蓝牙设置的管理者。

注意:如果你想要使用BLUETOOTH_ADMIN权限,那么你首先必须有BLUETOOTH权限。

你需要在应用程序的manifest文件中声明程序的蓝牙权限。例如:

[xhtml] view plaincopy
  1. <manifest ... >
  2. <uses-permission android:name="android.permission.BLUETOOTH" />
  3. ...
  4. </manifest>

关于声明应用程序权限的信息,请看<uses-permission>参考。

【Android 应用开发】Android之Bluetooth编程的更多相关文章

  1. 码农人生——从未学过Android如何开发Android App 案例讲解-第002期案例

    标题有点晃眼,本次分享是002期博文的实践故事,不会有任何代码.也不会教别人android 如何开发,类似博文已经有大批大批,而且还会有陆陆续续的人写,我写的文章,主要是经验之谈,希望总结出的一些方法 ...

  2. android studio 开发android app 真机调试

    大家都知道开发android app 的时候可以有2种调试方式, 一种是Android Virtual Device(虚拟模拟器) ,另一种就是真机调试. 这里要说的是真机调试的一些安装步骤: 1. ...

  3. 用Android Studio 开发Android应用

    目前AndroidStudio已经到了1.2版本了,我用了下,觉得还蛮好的,有些自动生成的资源,它会自动帮你管理.下面开始列一下,我的开发环境搭配.在开始前,你得有个VPN,可者代理.嗯.不然你下不了 ...

  4. [Hybrid App]--Android混合开发,Android、Js的交互

    AndroidJs通信 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !imp ...

  5. Android Studio开发Android应用如何签名

    1.使用jdk自带的工具生成keystore 使用cmd命令行进入到jdk的bin目录(比如:C:\Program Files\Java\jdk1.7.0_01\bin) 运行如下命令: C:\Pro ...

  6. Android BLE开发——Android手机与BLE终端通信初识

    蓝牙BLE官方Demo下载地址:   http://download.csdn.net/detail/lqw770737185/8116019参考博客地址:    http://www.eoeandr ...

  7. Android多媒体开发-- android中OpenMax的实现整体框架

    1.android中用openmax来干啥? android中的AwesomePlayer就 是用openmax来做(code)编解码,其实在openmax接口设计中,他不光能用来当编解码.通过他的组 ...

  8. Android Studio开发Android问题集【持续更新】

    问题一:emulator:ERROR:This AVD's configuration is missing a kernel file!! 答:打开Android SDK Manager,查看相应的 ...

  9. Android NDK开发 Android Studio使用新的Gradle构建工具配置NDK环境(一)

    本文主要讲述了如何如何在Android Studio使用新的Gradle构建工具配置NDK环境,现在把相关的步骤整理出来分享给Android程序员兄弟们,希望给他们在配置NDK环境时带来帮助. 从An ...

  10. 吴裕雄--天生自然Android开发学习:1.2.2 使用Android Studio开发Android APP

    1.下载Android Studio 官网下载:Android Studio for Window ... :http://developer.android.com/sdk/installing/s ...

随机推荐

  1. 1.物理系统PhysicsWorld,RayCast

     1 3.0物理系统PhysicsWorld T07PhysicsWorld.h #ifndef __T07PhysicsWorld_H__ #define __T07PhysicsWorld_H ...

  2. React Native组件只Image

    不管在Android还是在ios原生的开发中,图片都是作为控件给出来的,在RN中也有这么一个控件(Image).根据官网的资料,图片分为本地静态图片,网络图片和混合app资源.一下分类介绍来源官网. ...

  3. linux的 压缩与解压 命令集

    bzip2压缩费时但效果好,而且支持hadoop的hdfs文件切分,gzip不行 bzip2 [-cdz] 文件名 -c :将压缩的过程输出到屏幕 -d :解压缩 -z :压缩 -# :压缩比的参数, ...

  4. Android初级教程:如何自定义一个状态选择器

    有这样一种场景:点击一下某个按钮或者图片(view),改变了样式(一般改变背景颜色).这个时候一种解决方案,可能就是状态选择器.接下来就介绍如何实现状态选择器: 步骤: 一.新建这样的文件夹:res/ ...

  5. UNIX网络编程——Socket/TCP粘包、多包和少包, 断包

    为什么TCP 会粘包 前几天,调试mina的TCP通信, 第一个协议包解析正常,第二个数据包不完整.为什么会这样吗,我们用mina这样通信框架,还会出现这种问题? TCP(transport cont ...

  6. Android初级教程:Android中解析方式之pull解析

    在安卓中有很多种解析方式.按照大方向有xml解析和json解析.而,细致的分,xml和json解析各有自己的很多解析方式.今天这一篇主要介绍xml解析中的pull解析.对于xml的解析方式,我之前在j ...

  7. 安卓自定义日期控件(仿QQ,IOS7)续

    本篇是在原来的基础上修改了界面效果,使其更加接近ios7,qq等日期选择控件,看图: 源码地址:http://download.csdn.net/detail/baiyuliang2013/87601 ...

  8. Android优化之ArrayMap

    ArrayMap的介绍 官方对ArrayMap也有说明:它不是一个适应大数据的数据结构,相比传统的HashMap速度要慢,因为查找方法是二分法,并且当你删除或者添加数据时,会对空间重新调整,在使用大量 ...

  9. JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码

    JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个 ...

  10. 尚学堂马士兵struts2 课堂笔记(三)

    19-20 简单数据验证 例如 前台jsp 及struts.xml <a href="user/user!add?name=a" >添加用户</a> < ...