【发布时间】:2013-08-08 01:45:47
【问题描述】:
根据开发者指南,可以请求启用蓝牙:
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
- Nexus 7
- Nexus 4
- 银河系
【问题讨论】: