Methods 为什么广播接收器不是每次都打电话?

Methods 为什么广播接收器不是每次都打电话?,methods,bluetooth,broadcastreceiver,static-methods,Methods,Bluetooth,Broadcastreceiver,Static Methods,我是android新手,正在学习如何使用参数连接到设备。感谢您的关注。这是我面临的问题“一旦建立蓝牙连接,我可以使用1个参数,但无法连接到其他功能…” 在下面的aashaDiscovery()函数脚本中,当我们使用任何命令连接到aasha时,它会请求位于其他部分的位置权限,然后正确访问registerReceiver(searchAasha,intentFilterActions());searchAasha,但如果位置权限已经可用,它将进入该registerReceiver中的if条件(sea

我是android新手,正在学习如何使用参数连接到设备。感谢您的关注。这是我面临的问题“一旦建立蓝牙连接,我可以使用1个参数,但无法连接到其他功能…”

在下面的aashaDiscovery()函数脚本中,当我们使用任何命令连接到aasha时,它会请求位于其他部分的位置权限,然后正确访问registerReceiver(searchAasha,intentFilterActions());searchAasha,但如果位置权限已经可用,它将进入该registerReceiver中的if条件(searchAasha,intentFilterActions());searchAasha没有呼叫。是否在需要时随时呼叫广播接收器searchAasha

错误:

2020-09-09 11:43:38.148 29209-29252/?E/bt_btif:bte_扫描_过滤_参数_cfg_evt,23

脚本:

public String scanAasha(String aashacomand){
   aasha=aashacomand;
   mAdapter = BluetoothAdapter.getDefaultAdapter();
    if (mAdapter!= null) {
      mAdapter.startDiscovery();
      aashaDiscovery();
   }
     if (mBluetoothChatServiceaasha.maasha.contains("B_")) {
       String a[] = mBluetoothChatServiceaasha.maasha.split("_");
       return a[1] + " " + a[2];
     }
     if (mBluetoothChatServiceaasha.maasha.contains("O_")) {
       String a[] = mBluetoothChatServiceaasha.maasha.split("_");
       return a[1] + " " + a[2];
     }
     if (mBluetoothChatServiceaasha.maasha.contains("T_")) {
       String a[] = mBluetoothChatServiceaasha.maasha.split("_");
       return a[2];
     }
    return aashacomand;
  }

  
public void aashaDiscovery() {
int hasPermission = ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION);
if (hasPermission == PackageManager.PERMISSION_GRANTED) {
registerReceiver(searchAasha,intentFilterActions());
mAdapter.startDiscovery();
return;
}
else{
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{
android.Manifest.permission.ACCESS_COARSE_LOCATION},
AASHA_REQUEST_COARSE_LOCATION_PERMISSIONS);
registerReceiver(searchAasha,intentFilterActions());
mAdapter.startDiscovery();
return;
}
}
  
private BroadcastReceiver searchAasha = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Bundle b = intent.getExtras();
Object[] lstName = b.keySet().toArray();
// ??????????????????????
for (int i = 0; i < lstName.length; i++) {
String keyName = lstName[i].toString();
Log.e(keyName, String.valueOf(b.get(keyName)));
}

if(BluetoothDevice.ACTION_FOUND.equals(action)){
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (device.getName()==null) {
return;
}
if (device.getName().contains("SPP")) {
mBluetoothChatServiceaasha.start();
mBluetoothChatServiceaasha.connect(device);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
};
公共字符串scanAasha(字符串aashacomand){
aasha=aashacomand;
mAdapter=BluetoothAdapter.getDefaultAdapter();
如果(mAdapter!=null){
mAdapter.startDiscovery();
aashaDiscovery();
}
如果(mbluetothchatserviceaasha.maasha.contains(“B_”)){
字符串a[]=mBluetoothChatServiceaasha.maasha.split(“”);
返回一个[1]+“”+a[2];
}
如果(mBluetoothChatServiceaasha.maasha.contains(“O”)){
字符串a[]=mBluetoothChatServiceaasha.maasha.split(“”);
返回一个[1]+“”+a[2];
}
如果(mBluetoothChatServiceaasha.maasha.contains(“T”)){
字符串a[]=mBluetoothChatServiceaasha.maasha.split(“”);
返回[2];
}
返回aashacomand;
}
公开披露{
int hasPermission=ActivityCompat.checkSelfPermission(MainActivity.this、Manifest.permission.ACCESS\u位置);
if(hasPermission==PackageManager.PERMISSION\u已授予){
registerReceiver(searchAasha,intentFilterActions());
mAdapter.startDiscovery();
返回;
}
否则{
ActivityCompat.requestPermissions(MainActivity.this,
新字符串[]{
android.Manifest.permission.ACCESS\u\u LOCATION},
AASHA_请求_粗略_位置_权限);
registerReceiver(searchAasha,intentFilterActions());
mAdapter.startDiscovery();
返回;
}
}
private BroadcastReceiver searchAasha=新的BroadcastReceiver(){
@凌驾
公共void onReceive(上下文、意图){
String action=intent.getAction();
Bundle b=intent.getExtras();
对象[]lstName=b.keySet().toArray();
// ??????????????????????
for(int i=0;i