Android 如何使用异步任务检查蓝牙是否以编程方式与其他设备连接?

Android 如何使用异步任务检查蓝牙是否以编程方式与其他设备连接?,android,android-asynctask,android-bluetooth,Android,Android Asynctask,Android Bluetooth,我需要在异步任务中的doInBackground方法中检查是否有任何设备已连接并通过蓝牙与我的设备通信。如果已连接/正在通信-将toast消息显示为“已连接”。如果未连接,则显示为“未连接设备” 我到处都搜索过,但没有找到符合我要求的答案。我不知道您的详细问题,但我的解决方案是BroadhastReceiver for Bluetooth适配器 public类AnyActivity扩展了AppCompative活动{ 私有BluetoothAdapter mBluetoothAdapter=Bl

我需要在异步任务中的doInBackground方法中检查是否有任何设备已连接并通过蓝牙与我的设备通信。如果已连接/正在通信-将toast消息显示为“已连接”。如果未连接,则显示为“未连接设备”


我到处都搜索过,但没有找到符合我要求的答案。

我不知道您的详细问题,但我的解决方案是BroadhastReceiver for Bluetooth适配器

public类AnyActivity扩展了AppCompative活动{
私有BluetoothAdapter mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
私有静态布尔值isConnected=false;
私有静态布尔值isConnecting=false;
私有静态布尔值IsdConected=false;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_any);
IntentFilter BT_ConState_filter=新建
IntentFilter(BluetoothAdapter.ACTION\u CONNECTION\u STATE\u CHANGED);
这个.registerReceiver(BR_BT_ConState,BT_ConState_filter);
}
BroadcastReceiver BR_BT_ConState=新的BroadcastReceiver(){
@凌驾
公共void onReceive(上下文、意图){
字符串action\u BR\u BT\u ConState=intent.getAction();
int iBR_BT_ConState_state=intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_state,mblueothAdapter.ERROR);
if(动作\u BR\u BT\u ConState.equals(mBluetoothAdapter.action\u CONNECTION\u STATE\u CHANGED))
{
开关(iBR_BT_ConState_状态){
案例BluetoothAdapter.STATE_正在连接:
Toast.makeText(这个“连接”,Toast.LENGTH_SHORT).show();
断开连接=错误;
断开连接=正确;
isdconected=假;
打破
案例BluetoothAdapter.STATE_已连接:
Toast.makeText(这个“已连接”,Toast.LENGTH_SHORT).show();
断开连接=正确;
断开连接=错误;
isdconected=假;
打破
案例BluetoothAdapter.STATE_已断开:
Toast.makeText(这是“disconnected”,Toast.LENGTH_SHORT).show();
断开连接=错误;
断开连接=错误;
Isdconected=真;
打破
}
}
}
};
公共静态布尔值未连接(){
返回不连接;
}
公共静态布尔值isDisConnected(){
返回是断开连接的;
}
公共静态布尔值断开连接(){
返回是断开连接的;
}
@凌驾
受保护的空onDestroy(){
super.ondestory();
上下文。未注册接收者(BR_BT_ConState);
}
}
如果你告诉我你到底想做什么,例如: 根据状态运行一些代码, 执行一些TextView更改, 或者类似回调的方法

或者别的,我可以试着帮你更多


我现在所做的是创建一些静态函数,您应该能够在AsynkTask中调用它们,只需调用
AnyActivity.isConnected()
,就可以返回BluetoothAdapter的当前状态。

您是在说ble gatt吗?然后创建一个回调

    private final BluetoothGattCallback gattCallback = new BluetoothGattCallback() {
    @Override
    public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
        switch (newState) {
            case BluetoothProfile.STATE_DISCONNECTED:

                break;

            case BluetoothProfile.STATE_CONNECTING:

                break;

            case BluetoothProfile.STATE_CONNECTED:

                break;
        }
    }

它正在按预期工作。但我需要根据我的要求做一些修改。谢谢你,伙计。没问题,你应该看看@Frestoni的解决方案,对我来说也不错,但从未尝试过。如果答案有用,请接受:)