Как узнать, отключил ли пользователь разрешение «Картинка в картинке»? - PullRequest
0 голосов
/ 01 октября 2018

enter image description here

и вот еще один пример:

enter image description here

со скриншота выше мывидеть, что пользователь может отключить изображение в режиме изображения.Вы можете найти его в окне «Доступ к специальному приложению» на эмуляторе API 27.Как я могу определить, отключил ли пользователь эту функцию?

Я попытался проверить следующее, но оно не работает:

packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)

компилятор утверждает, что AppOpsManager не может быть найден.есть идеи?

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

как сказал AlexTa.но я хотел написать код, чтобы сэкономить время:

private fun hasPermission(): Boolean {
    val appOps = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager
    } else {
        return false
    }
    return appOps.checkOpNoThrow(AppOpsManager.OPSTR_PICTURE_IN_PICTURE, android.os.Process.myUid(), packageName) == AppOpsManager.MODE_ALLOWED
}
0 голосов
/ 01 октября 2018

Попробуйте AppOpsManager.checkOp (String op, int uid, String packageName), где op - это OPSTR_PICTURE_IN_PICTURE операция.Этот метод должен возвращать MODE_ALLOWED константу, если поддерживается операция «картинка в картинке».

Для получения дополнительной информации, проверьте эту ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...