Как запросить / проверить разрешение на отправку смс нескольким получателям в ми устройствах?

Я пытался отправить 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;
}

0 ответов

Другие вопросы по тегам