我使用代码A来设置WiFi的启用状态,当我在Android Studio 3.1.3中使用带有API 26和API 23的Android Emulator时,它运行良好,并且没有提示窗口!
但是我得到一个提示窗口"一个应用程序请求允许使用WLAN.允许吗?" 当我运行代码A时,在Android 5.1的真实手机中
如何让提示窗口不显示在真正的手机中?谢谢!
顺便说一句,真正的手机是搭载Android 5.1的三星SM-J5008
提示窗口
我已经设置了权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)
代码A.
fun setWiFi(aWiFiDef: WiFiDef): Unit{
val wifiManager =mContext.applicationContext.getSystemService(WIFI_SERVICE) as WifiManager
wifiManager.isWifiEnabled=aWiFiDef.status
}
Run Code Online (Sandbox Code Playgroud)
Android 5.1 没有这样的运行时权限,所以我认为这是一个错误实现的权限请求理性,即使应用程序不需要,也会显示出来。您写道,您使用 API 级别 26 和 23(即 Android 6.0 及更高版本)进行了测试,因此这些版本已经具有运行时权限。也许你还没有看到这个问题,因为你没有在Android 6.0以下的设备上测试过......
请检查您是否在某处调用AppCompat.shouldShowRequestPermissionRationale(),以及是否包含 SDK 级别检查或至少按照checkSelfPermission此处所述进行检查: https: //developer.android.com/training/permissions/requesting。使用 Android 5.1 和 Android 6.0 在模拟器中测试您的代码。那么您应该也能够在真实手机上重现该问题。
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |