根据开发人员指南,可以发出启用蓝牙的请求,如下所示:
http://developer.android.com/guide/topics/connectivity/bluetooth.html#SettingUp
if (!mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
在我的实现中,这会正确创建请求,并向用户显示请求对话框。
我的问题是onActivityResult()会立即被调用,以至于在对话框出现之前我就有了结果。返回的requestCode与一组(本例中为 9001)匹配,resultCode始终为 0(Activity.RESULT_CANCELED)。
我相信这是 4.3 中的一个错误,不幸的是我只有 4.3 设备。阅读描述和来源,似乎在用户与对话框交互之前不应调用onActivityResult() ,所以任何人都可以确认这是一个错误或解释我做错了什么?
对以下内容进行了测试,结果相同:
- 新的 Nexus 7
- 连结 7
- 连结 4
- 银河连结