Как программно предложить пользователю разрешения из Manifest
**У меня уже есть разрешения в Manifest, но если пользователь удалит и заново установит приложение то эти разрешения не работают, как программно перед началом установки приложения спросить с помощью стандартного диалога все эти разрешения **
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
Ответы (2 шт):
Никак. Добро пожаловать в 2020. Уже несколько лет разрешения запрашиваются не при установке, а при первом запуске или даже при первом вызове функции, требующей эти разрешения. Т.к. задача наистандартнейшая, то решение описано не только в тысячах мануалов, но даже и в официальной документации гугла.
И это еще не все: проверять наличие разрешения нужно каждый раз, когда требуется их наличие. И если нет, то снова запрашивать. Пользователь такой - сегодня дал, завтра забрал. Надо всегда исходить их того, что нужных разрешений нет.
И имейте в виду, что начиная с андроида 11 у пользователей будет возможность дать разрешение только на один раз использования.
Официальная документация: Request app permissions.
Вот что я хотел
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CALL_PHONE,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.READ_LOGS,
Manifest.permission.SEND_SMS,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.READ_SMS,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.INTERNET,
Manifest.permission.RECEIVE_SMS
}, 0);
}
}