Как запросить / проверить разрешение на отправку смс нескольким получателям в ми устройствах?
Я пытался отправить SMS на несколько контактов, он отлично работает с другими устройствами, но когда я запускаю его на устройстве mi, он запрашивает разрешения для каждого контакта. (например, если есть 4 контакта, он попросит 4 раза отказать один раз или разрешить один раз)
мой код выглядит следующим образом:
private void invite() {
for(int i=0;i<selectedContactPosList.size();i++){
int pos=selectedContactPosList.get(i);
Contact contact=contactList.get(pos);
sendSMS(contact.getPhoneList().get(0),"Testing message from Veri Doc Global",pos);
}
private void sendSMS(final String phoneNumber, String message, final int pos)
{
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
//---when the SMS has been sent---
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode())
{
case Activity.RESULT_OK:
sentContacts.put(pos,true);
Log.e("sms sent success",phoneNumber);
break;
default:
sentContacts.put(pos,false);
Log.e("sms sent failure",phoneNumber);
}
if(sentContacts.size()==selectedContactPosList.size()){
showResult();
}
unregisterReceiver(this);
}
}, new IntentFilter(SENT));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}
Как преодолеть проблему?
Что я хочу сделать, это проверить, предоставлено ли разрешение или нет? если нет, я перенаправлю его в настройки разрешений. но я не знаю, как проверить разрешение в miui.
когда я пытаюсь запустить следующий код, я всегда получаю PERMISSION_GRANTED
в МиУи.
private boolean checkForPermission() {
int rcContact = ContextCompat.checkSelfPermission(LevelActivity.this, Manifest.permission.READ_CONTACTS);
int rcSMS= ContextCompat.checkSelfPermission(LevelActivity.this, Manifest.permission.SEND_SMS);
return rcContact == PackageManager.PERMISSION_GRANTED && rcSMS == PackageManager.PERMISSION_GRANTED;
}