private fun requestOverlayPermission() {
Log.e("xxx", "inside requestOverlayPermission")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Log.e("xxx", "inside android version check")
if (!Settings.canDrawOverlays(activity)) {
Log.e("xxx", "inside canDrawOverlay check")
val intent = Intent(
Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + activity?.packageName)
)
Log.e("xxx", "about to call requestOverlayCode")
activity?.startActivityForResult(intent, REQUEST_OVERLAY_PERMISSION_CODE)
} else {
Log.e("xxx", "inside inner else block")
activity?.startService(
Intent(
activity,
LockScreenService::class.java
)
)
lockHomeButton()
}
} else {
Log.e("xxx", "inside outer else block")
activity?.startService(
Intent(
activity,
LockScreenService::class.java
)
)
lockHomeButton()
}
}
我正在使用一个应用程序,该应用程序在首次安装时向用户显示覆盖权限提示。但是,该应用程序在运行Android Pie的单个Google Pixel 3XL设备上崩溃。我没有对该设备的物理访问权,因此无法对其进行调试。该应用程序从不显示“覆盖”提示。
但是,该应用程序在Pixel 3 XL仿真器上运行良好。
我的清单:
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我不知道有一些奇怪的怪癖吗?为什么会发生这种情况的一些见解会很棒。
谢谢。