这是我的第一篇文章,所以如果我做些愚蠢的事,请告诉我.这个问题可能看起来与其他帖子相似,但与我所看到的一切差不多.
关于该项目的事情:
>我正在使用android 4.0-4.4应用程序.
>我正在使用蓝牙
>我正在运行android 4.2的物理设备(Eken Necnon)上进行测试
>该设备没有蓝牙硬件
我遇到的问题是,当我尝试使用BluetoothAdapter.getDefaultAdapter()获取蓝牙适配器时,它应该返回null,但不是.
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) { // This does not ever return true.
Log.w("Bluetooth", "Initializing bluetooth device failed: Bluetooth not supported.");
return;
}
if (!mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.enable();
}
while (mBluetoothAdapter.getState() != BluetoothAdapter.STATE_ON) {
try {
Log.d(TAG, "Waiting for bluetooth adapter to turn on, taking nap.");
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
解决方法:
这似乎是设备特定的问题.或者,您可以使用PackageManager来查找是否支持蓝牙.
PackageManager pm = context.getPackageManager();
boolean hasBluetooth = pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
在访问相应的API之前,最好先检查一下系统支持哪些功能.