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()
}
}
Я работаю над приложением, которое показывает пользователю приглашение разрешения наложения при первой установке.Однако происходит сбой приложения на одном устройстве Google Pixel 3XL под управлением Android Pie.У меня нет физического доступа к устройству и, следовательно, я не могу его отладить.Приложение никогда не показывает подсказку Overlay.
Однако приложение отлично работает на эмуляторе 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" />
Есть какая-то странная причуда, о которой я не знаю?Некоторое понимание того, почему это происходит, было бы здорово.
Спасибо.