Android 4.4 Kitkatでデフォルトの SMS アプリを使用せずに SMS を送信できますか?
つまり、SMS プロバイダーへの書き込み機能がなくても SMS を送信できますか?
Android 4.4 Kitkat でそれについて混乱しました。
デフォルト以外の SMS アプリを使用して SMS を送信できるかどうか疑問に思います。
Android 4.4 Kitkatでデフォルトの SMS アプリを使用せずに SMS を送信できますか?
つまり、SMS プロバイダーへの書き込み機能がなくても SMS を送信できますか?
Android 4.4 Kitkat でそれについて混乱しました。
デフォルト以外の SMS アプリを使用して SMS を送信できるかどうか疑問に思います。
アプリがデフォルトの SMS アプリでなくても、SMS を送信できます。
ただし、SMS プロバイダーを使用することはできません。
これが新しいバージョンの要点です。どのアプリが特別な SMS 操作を使用できるかをユーザーに明確にし、そのためのデフォルト アプリを 1 つだけ持つようにします。
このテキストを見てください(Android開発者ブログから取得):
デフォルトの SMS アプリとして動作させたくないがメッセージを送信したい一部のアプリを考慮して、SEND_SMS 権限を持つアプリは、SmsManager を使用して SMS メッセージを送信できます。アプリが Android 4.4 の既定の SMS アプリとして選択されていない場合にのみ、システムは送信された SMS メッセージを SMS プロバイダーに自動的に書き込みます (既定の SMS アプリは常に、送信されたメッセージを SMS プロバイダーに書き込む役割を果たします)。
要するに、SMS の送受信だけが必要な場合でも、それは可能です。
ただし、一部の操作では、アプリを既定の SMS アプリとして使用する必要があります。
このコードを試すことができます:
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);
そしてマニフェストで:
<uses-permission android:name="android.permission.SEND_SMS" />
送信番号が 4、5、6 桁でない場合、ユーザーからの確認は必要ありません。