PlatformException (PlatformException(startScan, Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@bae2447b: GattService registerScanner, java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@bae2447b: GattService registerScanner
时间: 2023-09-24 13:11:14 浏览: 225
这是一个异常信息,看起来与Android蓝牙扫描权限有关。在Android应用开发中,如果要使用蓝牙功能,需要在应用的AndroidManifest.xml文件中添加相应的权限声明。这个错误信息提示你的应用在使用蓝牙扫描时没有添加BLUETOOTH_SCAN权限,建议你检查一下你的应用是否已经添加了这个权限声明。如果没有,可以在AndroidManifest.xml文件中添加以下代码:
```
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
```
同时,需要注意的是,在Android 6.0及以上版本中,蓝牙扫描权限是属于危险权限范畴,需要动态请求用户授权。如果你的应用是在Android 6.0及以上版本上运行的,还需要在代码中动态请求蓝牙扫描权限。
相关问题
12-21 15:41:33.636 I/WifiService( 1081): startScan uid=10098 12-21 15:41:33.640 I/WifiScanRequestProxy( 1081): Scan request from com.autonavi.amapauto throttled 12-21 15:41:33.640 I/ActivityManager( 1081): caller:android, send broadcast:android.net.wifi.SCAN_RESULTS 12-21 15:41:33.642 E/WifiService( 1081): Failed to start scan 12-21 15:41:33.775 I/ActivityManager( 1081): caller:android, send broadcast:android.intent.action.SIG_STR 12-21 15:41:33.971 I/hostapd ( 3893): ap0: STA 28:c7:09:63:e0:a3 IEEE 802.11: disassociated 12-21 15:41:33.971 I/wificond( 631): Station 28:c7:09:63:e0:a3 disassociated from hotspot 12-21 15:41:33.972 I/hostapd ( 3893): ap0: STA 28:c7:09:63:e0:a3 IEEE 802.11: disassociated 12-21 15:41:33.972 I/hostapd ( 3893): ap0: AP-STA-DISCONNECTED 28:c7:09:63:e0:a3 12-21 15:41:33.973 D/SoftApManager( 1081): Setting num stations on CMD_NUM_ASSOCIATED_STATIONS_CHANGED 12-21 15:41:33.973 D/SoftApManager( 1081): Number of associated stations changed: 0 12-21 15:41:33.975 D/AlarmManager( 1081): [set] switch ELAPSED_REALTIME_WAKEUP -> ELAPSED_REALTIME,callingPackage = android,triggerAtTime = 721599,listenerTag = SoftApManager Soft AP Send Message Timeout 12-21 15:41:33.976 D/SoftApManager( 1081): Timeout message scheduled这段log表示什么
这段log的意思是在手机上的Wifi服务试图进行扫描时被拒绝,因为它被限流了。在扫描失败后,系统发送了一个广播,通知相关应用有关Wifi扫描结果的变化。接着,设备上的一个客户端(STA)28:c7:09:63:e0:a3从热点(hotspot)断开连接,并在此之后,SoftApManager处理了与连接的客户端数量有关的变化,并安排了一条消息在将来的某个时间进行超时处理。
public void opAfterJudge(boolean isPass){ if(isPass){ intent.putExtra("RESULT", true); setResult(RESULT_OK, intent); SdcardTools.writeTofile(SdcardTools.factory_file,"WIFI_TEST:OK"); //startActivity(intent_activity); intent.putExtra("TEST_CHOOSE","WIFI"); finish(); }else{ if(scan_count<6){ toWIFISettingsTV.setText(WIFI_TEXT+"Wi-Fi 搜索次数:"+scan_count); mWifiManager.startScan(); scan_count++; return ; } Toast.makeText(this, "WiFi测试失败:\n"+"搜索不到WiFi或WiFi强度不足!", Toast.LENGTH_LONG).show(); intent.putExtra("RESULT", false); setResult(RESULT_OK, intent); SdcardTools.writeTofile(SdcardTools.factory_file,"WIFI_TEST:ERROR"); finish(); } }
这段代码是一个方法,根据参数isPass的值来执行不同的操作。如果isPass为true,会执行以下操作:将"RESULT"设置为true并将intent的结果设置为RESULT_OK,然后使用SdcardTools类将"WIFI_TEST:OK"写入文件,接着将"TEST_CHOOSE"设置为"WIFI",最后调用finish()方法结束当前活动。
如果isPass为false,会执行以下操作:首先判断scan_count是否小于6,如果是,则将toWIFISettingsTV的文本设置为WIFI_TEXT+"Wi-Fi 搜索次数:"+scan_count,然后通过mWifiManager开始扫描WiFi并将scan_count加1,然后返回。如果scan_count不小于6,则显示一个Toast提示"WiFi测试失败:\n搜索不到WiFi或WiFi强度不足!",然后将"RESULT"设置为false并将intent的结果设置为RESULT_OK,再使用SdcardTools类将"WIFI_TEST:ERROR"写入文件,最后调用finish()方法结束当前活动。
阅读全文