我正在尝试编写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()
不执行任何操作。