4

这是我的代码,用于打开蓝牙:

Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

还:

public static final int REQUEST_ENABLE_BT = 9;

这是我的 onActivityResult:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
    case REQUEST_ENABLE_BT:
        if (resultCode == Activity.RESULT_OK) {
            bluetoothSetupDone();
        } else {
            // User did not enable Bluetooth or an error occurred
        }
    break;

    default:
        super.onActivityResult(requestCode, resultCode, data);
        break;
    }

}

结果代码正确,但请求代码不正确。

即使用户在打开蓝牙的弹出对话框上按否或是。onActivityResult 中 requestCode 变量的值是某个随机数(196617),但应该是 9。

4

2 回答 2

4

Damn. Should have used:

getSupportActivity().startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

wrong requestCode in onActivityResult

http://blog.tgrigsby.com/2012/04/18/android-fragment-frustration.aspx

于 2013-08-14T11:59:45.593 回答
1

startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);我是从一个片段中调用的,所以我添加了getActivity().startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);,这解决了我的问题。

于 2019-03-28T09:39:30.813 回答