Я разрабатываю приложение, необходимое для доступа к контактам в телефоне. этот метод выполняется внутри потока. Но когда приложение запускается в первый раз, он сбой и говорит, что в качестве ошибки требуется android.permission.READ_CONTACTS или android.permission.READ_CONTACTS. как только нажмете на кнопку ОК в диалоговом окне всплывающего окна. он перезапускает его самостоятельно, прося разрешения и отлично работает. В некоторых телефонах он не показывает никаких ошибок или диалогового окна.Android Прочитать контакты Разрешение на работу не работает
вот код внутри фрагмента по методу onCreateView, чтобы проверить, является ли разрешение уже было выдано
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_GRANTED) {
Runnable r = new Runnable() {
@Override
public void run() {
getContacts();
}
};
Thread thread = new Thread(r);
thread.start();
}else{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (shouldShowRequestPermissionRationale(Manifest.permission.READ_CONTACTS)) {
Toast.makeText(this, "Read contacts permission is required to function app correctly", Toast.LENGTH_LONG)
.show();
}
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, REQUEST_READ_CONTACTS);
}
}
Вот onRequestPermissionsResult метод.
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case REQUEST_READ_CONTACTS :
Runnable r = new Runnable() {
@Override
public void run() {
getContacts();
}
};
Thread thread = new Thread(r);
thread.start();
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
Это код AndroidManifest.xml.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.shan.chathuranga.smsscheduler">
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
</manifest>
Что я делаю неправильно. отлично работает в нижнем зефире. requestPermissions
способ.
Вот ссылка на репозиторий https://[email protected]/chathurangaJ/sms-scheduler.git Я застрял в этом в течение 2 недель, пожалуйста, помогите.
Я пытаюсь его отладить. Эта ошибка будет получена, как только приложение достигнет
Попробуйте этот ответ http://stackoverflow.com/ Вопросы/40626721/onrequestpermissionsresult-grant-results-always-1/40628014 # 40628014 –