Android的联通性---Bluetooth(二)

蓝牙权限

为了在你的应用程序中使用蓝牙功能,至少要声明两个蓝牙权限(BLUETOOTH和BLUETOOTH_ADMIN)中的一个。

为了执行任何蓝牙通信(如请求连接、接收连接和传输数据),你必须申请BLUETOOTH权限。

为了启动设备发现或维护蓝牙设置,你必须申请BLUETOOTH_ADMIN权限。大多数需要这个权限的应用程序,仅仅是为能够发现本地的蓝牙设备。这个权限所授予的其他能力应该不被使用,除非是电源管理的应用程序,它会在依据用户的请求来修改蓝牙设置。注意:如果你使用了BLUETOOTH_ADMIN权限,那么必须要有BLUETOOTH权限。

在你的应用程序清单文件中声明蓝牙权限,例如:

<manifest ... >

  <uses-permission android:name="android.permission.BLUETOOTH" />

  ...

</manifest>

关于声明应用程序权限的更多信息,请参阅<uses-permission>

 

设置蓝牙

在应用程序能够利用蓝牙通道通信之前,需要确认设备是否支持蓝牙通信,如果支持,要确保它是可用的。

如果不支持蓝牙,那么你应该有好的禁用所有蓝牙功能。如果支持蓝牙,但是被禁用的,那么你要在不离开你的应用程序的情况下,请求用户启用蓝牙功能,这种设置要使用BluetoothAdapter对象,在以下两个步骤中完成。

1. 获得BluetoothAdapter对象

BluetoothAdapter对象是所有蓝牙活动都需要的,要获得这个对象,就要调用静态的getDefaultAdapter()方法。这个方法会返回一个代表设备自己的蓝牙适配器的BluetoothAdapter对象。整个系统有一个蓝牙适配器,你的应用程序能够使用这个对象来进行交互。如果getDefaultAdapter()方法返回null,那么该设备不支持蓝牙,你的处理也要在此结束。例如:

BluetoothAdapter mBluetoothAdapter =BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter ==null){
// Device does not support Bluetooth
}

2. 启用蓝牙功能

接下来,你需要确保蓝牙是可用的。调用isEnabled()方法来检查当前蓝牙是否可用。如果这个方法返回false,那么蓝牙是被禁用的。要申请启用蓝牙功能,就要调用带有ACTION_REQUEST_ENABLE操作意图的startActivityForResult()方法。它会给系统设置发一个启用蓝牙功能的请求(不终止你的应用程序)。例如:

if(!mBluetoothAdapter.isEnabled()){
    Intent enableBtIntent =newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

}

这时会显示一个请求用户启用蓝牙功能的对话框,如图1所示:

图1.启用蓝牙功能的对话框。

如果用户响应“Yes”,那么系统会开始启用蓝牙功能,完成启动过程(有可能失败),焦点会返回给你的应用程序。

传递给startActivityForResult()方法的REQUEST_ENABLE_BT常量,是一个你的应用程序中定义的整数(它必须大于0),系统会把它作为requestCode参数返回到你的onActivityResult()回调实现中。

如果蓝牙功能启用成功,你的Activity会在onActivityResult()回调中接收到RESULT_OK结果,如果蓝牙没有被启动(或者用户响应了“No”),那么该结果编码是RESULT_CANCELED。

可选地,你的应用程序还可以监听ACTION_STATE_CHANGED广播Intent,无论蓝牙状态何时改变,系统都会广播这个Intent。这个广播包含的附加字段EXTRA_STATE和EXTRA_PREVIOUS_STATE中分别指明了新的和旧的蓝牙状态。这些附加字段中可能的值是:STATE_TURNING_ON、STATE_ON、STATE_TURNING_OFF和STATE_OFF。监听这个广播对于在应用程序运行时检测蓝牙的状态是有用的。

提示:启用可发现能力会自动启动蓝牙功能。如果你计划在执行蓝牙活动之前,要始终启用设备的可发现机制,就可以跳过上面的第2步,详细请参阅下文“启用蓝牙可发现”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,重庆联通的i-120E光猫是指重庆联通使用的一种光猫设备。根据引用\[1\]中提到的信息,i-120E光猫默认是路由模式,开启了DHCP,由光猫进行PPPoE拨号,客户端电脑只需通过网线连接即可自动获取IP上网。如果需要将i-120E光猫改为桥接模式,可以参考引用\[2\]中提供的参考链接,其中包括了一些关于光猫的破解方法和配置文件的导出等信息。此外,引用\[3\]中提到了一些关于更换光猫的情况,但与重庆联通i-120E光猫的具体问题关系不大。如果您有关于重庆联通i-120E光猫的具体问题,请提供更多详细信息,我将尽力为您解答。 #### 引用[.reference_title] - *1* [上海贝尔光猫 I-120E-Q 的破解之一:开启telnet功能](https://blog.csdn.net/CoolWater/article/details/16345087)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [家里电信光猫吉比特I-120E-QT替换成中兴F650A,超级密码破解](https://blog.csdn.net/fupingloveyou/article/details/104907250)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值