我可以在 Android 4.4 Kitkat 上使用无默认短信应用发送短信吗?
这意味着,我是否可以发送短信而无法写入SMS提供商?
我对Android 4.4 Kitkat感到困惑。
我想我可以使用非默认短信应用发送短信。
答案 0 :(得分:10)
即使您的应用不是默认的短信应用,也可以发送短信。
但是,您将无法使用SMS提供程序。
这是新版本的重点 - 向用户明确说明允许哪个应用程序使用特殊的SMS操作,并且只有一个默认应用程序。
查看此文本(摘自android developer blog):
考虑到一些不想表现得像的应用程序 默认短信应用但仍希望发送消息,任何有应用程序的应用程序 SEND_SMS权限仍然可以使用发送短信 SmsManager。当且仅当未选择应用作为默认SMS时 Android 4.4上的应用程序,系统自动写入发送的短信 消息到SMS提供商(默认的SMS应用程序始终是 负责将其发送的消息写入SMS提供商。)
所以,简而言之,如果您只需要发送和接收短信,您仍然可以这样做。
但是,某些操作要求您将应用程序作为默认的SMS应用程序。
答案 1 :(得分:3)
您可以尝试以下代码:
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(context, 0, new Intent(DELIVERED), 0);
android.telephony.SmsManager.getDefault().sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
在Manifest中:
<uses-permission android:name="android.permission.SEND_SMS" />
如果发送号码不是4,5,6位,则不需要用户确认。