弃用的方法 "startActivityForResult()" 与正确的蓝牙设置
Deprecated method "startActivityForResult()" vs properly bluetooth set up
嘿,我尝试根据官方android开发网站上的信息制作蓝牙服务。但是我遇到了弃用方法 startActivityForResult()。我应该怎么做才能正确打开蓝牙设备?
这是我使用已弃用方法的代码:
private void enableBt(View view){
if(myBluetoothAdapter==null){
//we don't have bt in this device
}
else if(!myBluetoothAdapter.isEnabled()){
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
}
这是一个特殊的 AndroidX 扩展,包装了 startActivityForResult
并提供了一种更简单的方法。
根据 Android Developers, you need to extend ActivityResultContract,您在其中通过覆盖 2 个方法为 activity 结果调用实现了 input/output:
- 根据输入创建意图的方法。
- 根据 activity 结果解析输出的方法。
在您的情况下,您没有输入,因此您可以使用 Void
输入类型(虽然不知道您的输出)。
正确实施该合同 class 后,您只需从该 class 创建一个实例并将其传递给 registerForActivityResult(…)
( 在 您的activity 已启动),returns 某种启动器。
您使用该启动器并调用 launch
而不是 startActivityForResult
。
尽情享受吧:)
嘿,我尝试根据官方android开发网站上的信息制作蓝牙服务。但是我遇到了弃用方法 startActivityForResult()。我应该怎么做才能正确打开蓝牙设备?
这是我使用已弃用方法的代码:
private void enableBt(View view){
if(myBluetoothAdapter==null){
//we don't have bt in this device
}
else if(!myBluetoothAdapter.isEnabled()){
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
}
这是一个特殊的 AndroidX 扩展,包装了 startActivityForResult
并提供了一种更简单的方法。
根据 Android Developers, you need to extend ActivityResultContract,您在其中通过覆盖 2 个方法为 activity 结果调用实现了 input/output:
- 根据输入创建意图的方法。
- 根据 activity 结果解析输出的方法。
在您的情况下,您没有输入,因此您可以使用 Void
输入类型(虽然不知道您的输出)。
正确实施该合同 class 后,您只需从该 class 创建一个实例并将其传递给 registerForActivityResult(…)
( 在 您的activity 已启动),returns 某种启动器。
您使用该启动器并调用 launch
而不是 startActivityForResult
。
尽情享受吧:)