開発者ガイドによると、次のように Bluetooth を有効にするように要求できます。
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は 1 つのセット (この場合は 9001) と一致し、resultCodeは常に 0 (Activity.RESULT_CANCELED) です。
これは 4.3 のバグだと思いますが、残念ながら私は 4.3 デバイスしか持っていません。説明とソースを読むと、ユーザーがダイアログを操作するまでonActivityResult()を呼び出すべきではないように見えるので、誰かがこれがバグであることを確認したり、私が間違っていることを説明したりできますか?
以下でテストされ、同じ結果が得られました。
- 新しいネクサス 7
- ネクサス7
- ネクサス4
- ギャラクシー ネクサス