【Android 应用开发】Android之Bluetooth编程

简介: 【Android 应用开发】Android之Bluetooth编程

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/forlong401/article/details/8536209     android蓝牙开发——基本概念


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蓝牙开发 自动配对连接,并不弹出提示框


http://www.eoeandroid.com/thread-249231-1-1.html 蓝牙取消配对方法


http://blog.csdn.net/zzy916853616/article/details/6597746   android开发之蓝牙初步 扫描已配对蓝牙、更改蓝牙可见性、搜索外部蓝牙设备





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

kandee


-1 票


1

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 plain copy
<manifest ... >  
  <uses-permission android:name="android.permission.BLUETOOTH" />  
  ...  
</manifest>

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



目录
相关文章
|
2月前
|
存储 XML 开发工具
探索安卓应用开发:从基础到进阶
在这篇文章中,我们将一起踏上安卓应用开发的旅程。不论你是编程新手还是希望提升技能的开发者,这里都有你需要的东西。我们会从最基础的概念开始,逐步深入到更复杂的主题。文章将涵盖开发环境设置、用户界面设计、数据处理以及性能优化等方面。通过理论与实践的结合,你将能够构建出既美观又高效的安卓应用。让我们一起开启这段技术之旅吧!
|
2月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
3月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
80 3
|
3月前
|
存储 Android开发 开发者
深入理解安卓应用开发的核心组件
【10月更文挑战第8天】探索Android应用开发的精髓,本文带你了解安卓核心组件的奥秘,包括Activity、Service、BroadcastReceiver和ContentProvider。我们将通过代码示例,揭示这些组件如何协同工作,构建出功能强大且响应迅速的应用程序。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和深度知识。
|
3月前
|
数据可视化 Android开发 开发者
安卓应用开发中的自定义View组件
【10月更文挑战第5天】在安卓应用开发中,自定义View组件是提升用户交互体验的利器。本篇将深入探讨如何从零开始创建自定义View,包括设计理念、实现步骤以及性能优化技巧,帮助开发者打造流畅且富有创意的用户界面。
113 0
|
1月前
|
搜索推荐 Android开发 开发者
安卓应用开发中的自定义控件实践
在安卓应用开发的广阔天地中,自定义控件如同璀璨的星辰,点亮了用户界面设计的夜空。它们不仅丰富了交互体验,更赋予了应用独特的个性。本文将带你领略自定义控件的魅力,从基础概念到实际应用,一步步揭示其背后的原理与技术细节。我们将通过一个简单的例子——打造一个具有独特动画效果的按钮,来展现自定义控件的强大功能和灵活性。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇通往更高阶UI设计的大门。
|
2月前
|
API Android开发 iOS开发
深入探索Android与iOS的多线程编程差异
在移动应用开发领域,多线程编程是提高应用性能和响应性的关键。本文将对比分析Android和iOS两大平台在多线程处理上的不同实现机制,探讨它们各自的优势与局限性,并通过实例展示如何在这两个平台上进行有效的多线程编程。通过深入了解这些差异,开发者可以更好地选择适合自己项目需求的技术和策略,从而优化应用的性能和用户体验。
|
2月前
|
缓存 监控 前端开发
探索Android应用开发之旅:从新手到专家
【10月更文挑战第42天】本文将带你踏上Android应用开发的旅程,无论你是初学者还是有经验的开发者。我们将一起探索如何从零开始创建你的第一个Android应用,并逐步深入到更高级的主题,如自定义视图、网络编程和性能优化。通过实际示例和清晰的解释,你将学会如何构建高效、吸引人的Android应用。让我们一起开启这段激动人心的旅程吧!
|
2月前
|
开发框架 前端开发 Android开发
探索安卓和iOS应用开发中的跨平台解决方案
【10月更文挑战第42天】在移动应用开发的广阔天地中,安卓和iOS系统如同两座巍峨的山峰,分别占据着半壁江山。开发者们在这两座山峰之间穿梭,努力寻找一种既能节省资源又能提高效率的跨平台开发方案。本文将带你走进跨平台开发的世界,探讨各种解决方案的优势与局限,并分享一些实用的代码示例,助你在应用开发的道路上更加游刃有余。
|
2月前
|
搜索推荐 前端开发 Android开发
安卓应用开发中的自定义视图实现
【10月更文挑战第30天】在安卓开发的海洋中,自定义视图是那抹不可或缺的亮色,它为应用界面的个性化和交互体验的提升提供了无限可能。本文将深入探讨如何在安卓平台创建自定义视图,并展示如何通过代码实现这一过程。我们将从基础出发,逐步引导你理解自定义视图的核心概念,然后通过一个实际的代码示例,详细讲解如何将理论应用于实践,最终实现一个美观且具有良好用户体验的自定义控件。无论你是想提高自己的开发技能,还是仅仅出于对安卓开发的兴趣,这篇文章都将为你提供价值。