getBluetoothLeAdvertiser()返回null [英] getBluetoothLeAdvertiser() returns null

查看:104
本文介绍了getBluetoothLeAdvertiser()返回null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

BluetoothLeAdvertiser advertiser = BluetoothAdapter.getDefaultAdapter().getBluetoothLeAdvertiser();

这将返回null.我在API 21和API 23设备上进行了尝试,但结果相同.我不知道我在想什么?

This returns null. I have tried on an API 21 and on an API 23 device, but with the same result. I have no idea what I am missing?

该应用程序的构建和运行正常,直到使用广告客户并且该应用程序崩溃为止.

The app builds and runs just fine, until of course the advertiser is used and the app crashes.

感谢您提供的任何帮助! :)

I appreciate any help provided! :)

推荐答案

如果您检查了开发人员文档,请链接

If you check the developer docs, link here. You'll see that the null object is returned in the following case:

为Bluetooth LE Advertising操作返回BluetoothLeAdvertiser对象.如果蓝牙已关闭或此设备不支持蓝牙LE广告,则将返回null.

Returns a BluetoothLeAdvertiser object for Bluetooth LE Advertising operations. Will return null if Bluetooth is turned off or if Bluetooth LE Advertising is not supported on this device.

如果不确定设备是否完全支持蓝牙,则应检查系统返回的BluetoothAdapter是否为null

If you are unsure whether the device supports Bluetooth at all you should check if the BluetoothAdapter returned by the system is null

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

然后他们建议您致电isMultipleAdvertisementSupported(),看看是否首先受支持.

Then they advice you to call isMultipleAdvertisementSupported() to see if it is supported first.

if(!mBluetoothAdapter.isMultipleAdvertisementSupported()){
    //Device does not support Bluetooth LE
}

如果它支持BLE,则必须检查以查看是否启用了蓝牙,如果没有启用,请使用户了解并解决.

If it supports BLE you must check to see if Bluetooth is enabled and if not, make the user aware and resolve it.

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

大多数情况下,适配器是null

That should cover most of the times the adapter is null

这篇关于getBluetoothLeAdvertiser()返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆