即使授予SEND_SMS权限,Android sendTextMessage也不适用于第二个帐户

时间:2016-03-01 04:04:40

标签: android android-permissions android-6.0-marshmallow smsmanager

我正在尝试编写Sms应用程序。

当我使用

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNumber, null, body, null, null);

发送短信,该应用程序在主帐户上正常工作,但当我切换到第二个帐户时,它总是无法发送短信。

我已经授予第二个帐户在“设置”中发送短信的权限,并且还添加了

<uses-permission android:name="android.permission.SEND_SMS" />
在Manifest.xml中

此外,由于目标sdk版本为23,我还在运行时请求权限。但是,在授予所有权限后,它仍然无法正常工作。 T_T

它不会崩溃,它什么都不做。因此,我认为这是一个与许可相关的问题,我只是不知道问题出在哪里。

有人帮忙吗?

更新

public void sendSMS(Context context, String phoneNumber, String messageBody)
{
    Intent sentIntent = new Intent("SENT");
    sentIntent.putExtra("phone_number", phoneNumber);
    sentIntent.putExtra("message_body", messageBody);

    PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, sentIntent, PendingIntent.FLAG_CANCEL_CURRENT);
    PendingIntent deliveredPI = PendingIntent.getBroadcast(context, 0, new Intent("DELIVERED"), 0);

    /**Catch the sms send fail to check wether cause by permission deny**/
    try{
        Log.d("Debug phoneNumber", phoneNumber );
        Log.d("Debug messageBody", messageBody);

        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage(phoneNumber, null, messageBody, sentPI, deliveredPI);
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}

两种Log.d()方法可以使用,但如果切换到辅助帐户,则smsManager.sendTextMessage()不执行任何操作。

0 个答案:

没有答案
相关问题