0

我想访问包含在 BluetoothDevice.ACTION_FOUND 中的额外内容,例如,如果我想访问包含在 BluetoothDevice.EXTRA_CLASS 中的值,我应该在代码中使用它,但是当我显示变量“状态”的值时",类似于 -245175

BluetoothDevice.EXTRA_CLASS 中是否还有其他值?我应该怎么认识他们?我应该如何访问它们?

更新

我注册的意图是:BluetoothDevice.ACTION_FOUND

代码

switch (action) {
        case BluetoothDevice.ACTION_FOUND:
            Log.d(TAG, LogAnd.i("onReceive", "BluetoothDevice.ACTION_FOUND"));

            final int state = intent.getIntExtra(BluetoothDevice.EXTRA_CLASS, BluetoothAdapter.ERROR);
            Log.d(TAG, LogAnd.i("onReceive", "state: "+state));
            break;
4

1 回答 1

1

您正在使用getIntExtra(),但额外的值不是整数。它仍然“有效”,但内容以错误的方式解释,所以你得到一个毫无意义的值。

EXTRA_CLASS的文档说:

BluetoothClass在 ACTION_FOUND 和 ACTION_CLASS_CHANGED 意图中用作 Parcelable 额外字段。

你应该getParcelableExtra()改用。那应该给你一个正确类的实例。像这样:

BluetoothClass bclass = (BluetoothClass)intent.getParcelableExtra(BluetoothDevice.EXTRA_CLASS);
于 2015-08-24T09:12:56.987 回答