我的android应用程序以编程方式发送SMS(通常由推送消息触发),并且可以在许多Android版本和设备上正常运行。但是,在新的Oppo手机CPH1851上,我会看到一个通知弹出窗口,提示:
“ [应用名称]会将短信发送到[电话号码]”
(其中[app name]是我的应用程序的名称,[phone number]是该应用程序向其发送SMS的号码
该通知具有一个“发送”按钮和一个“取消”按钮(后带有递减计时器)
很明显,这似乎是对Android安全性的另一种误导性尝试,没有考虑碎片化和用户体验,而只是想解决它。
感谢您的帮助
答案 0 :(得分:0)
请尝试以下代码,并添加SEND_SMS权限。
try {
SmsManager smsManager = SmsManager.getDefault();
ArrayList<String> parts = smsManager.divideMessage(sb.toString());
//smsManager.sendTextMessage(phoneNumber, null, message, null, null);
smsManager.sendMultipartTextMessage(phone, null, parts,
null, null);
Toast.makeText(activity, "Send Message Successfully ", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "SMS Failed !", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
在下面的代码中,我在Oppo手机中可以尝试
SmsManager sms = SmsManager.getDefault();
List<String> messages = sms.divideMessage(message);
for (String msg : messages) {
PendingIntent sentIntent = PendingIntent.getBroadcast(this, 0, new Intent("SMS_SENT"), 0);
PendingIntent deliveredIntent = PendingIntent.getBroadcast(this, 0, new Intent("SMS_DELIVERED"), 0);
sms.sendTextMessage(phone, null, msg, sentIntent, deliveredIntent);
Toast.makeText(activity, "Send Message Successfully", Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:0)
Oppo的Android定制版本(称为ColorOS)是造成此问题的原因。
设置/安全性/权限/发送SMS会向您显示该应用程序是否“允许”发送短信(其他选项“询问”和“禁止”)。将此设置为“允许”可以使问题在一个Oppo模型上消失。但是不能在另一个上。
因此,另一个选择是启用开发人员选项,并在列表的最底部打开“禁用权限监视”(这似乎关闭了所有ColorOS权限监视,但不会影响基本的Android许可)。