Я создаю приложение для Android через Android Studio. Одной из основных функций приложения является отправка SMS, но я не могу заставить его работать правильно на разных устройствах из-за ошибок разрешений. Я пытался устранить эту проблему, запрашивая разрешения при входе пользователя, но это работало на API версии 13 и не удалось 26, я попытался с build.versioncode.o.
, но его тоже не удалось.
Как правильно сделать это и проверять разрешения при каждой отправке SMS? (Обратите внимание, SMS-сообщения отправляются из разных функций в приложении.
Я также только что получил эту ошибку при отправке сообщения
java.lang.SecurityException: Neither user 10205 nor current process has android.permission.READ_PHONE_STATE.
Запросить разрешение на вход в систему
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private void getPermissionToReadSMS() {
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.SEND_SMS)
!= PackageManager.PERMISSION_GRANTED) {
if (shouldShowRequestPermissionRationale(
android.Manifest.permission.READ_SMS)) {
Toast.makeText(this, "Please allow permission!", Toast.LENGTH_SHORT).show();
}
requestPermissions(new String[]{android.Manifest.permission.READ_SMS},
REQUEST_READ_SMS);
}
}
Фрагмент метода, который отправляет метод
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(testContact.getNumber(), null, "SENT MESSAGE" + message, sentPending, deliveredPending);
Манифест приложения
<!-- grant permission to uses in build sms service -->
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission-group.SMS" />