android 现在BluetoothAdapter.getDefaultAdapter()已弃用,我该使用什么?

mctunoxg  于 2022-12-28  发布在  Android
关注(0)|答案(2)|浏览(677)

如何修复此代码中的弃用警告?或者,是否有其他选项可用于此操作?

val mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
            if (mBluetoothAdapter.isEnabled) {}
xtfmy6hx

xtfmy6hx1#

如您所见,他们现在建议:

val bluetoothManager = context.getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
bluetoothManager.getAdapter()

原因似乎是BluetoothAdapter.getDefaultAdapter()忽略了Context,而更复杂的应用程序可能需要显式引用正确的Context。
在我看来,这不是一个很好的理由来反对它,因为我想不出一个现实的/频繁的用例,其中蓝牙适配器需要基于上下文。他们应该只留下两个选项(基于上下文和默认)在没有反对。

tvz2xvvm

tvz2xvvm2#

BluetoothManager bluetoothManager = (BluetoothManager) YourContext.getSystemService(Context.BLUETOOTH_SERVICE);
    BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();

相关问题