1

SMSManager を使用してユーザー インターフェイスなしで SMS を送信しようとしています。Android 4.1.2 以下では問題ありませんが、Android 4.4.2 では機能しません。

これは私のコードです:

SmsManager sms = SmsManager.getDefault();
ArrayList<String> msgStringArray = sms.divideMessage(message);
sms.sendMultipartTextMessage(phoneNumber, null, msgStringArray, null,null);

なにが問題ですか ?

4

1 に答える 1

1

Android 4.4 の変更により、アプリが SMS を送信できない可能性があります。https://developer.android.com/about/versions/android-4.4.html#SMSで概要を説明すると、変更を確認できます。

SMS プロバイダーテレフォニー コンテンツ プロバイダー (「SMS プロバイダー」) により、アプリはデバイス上で SMS および MMS メッセージを読み書きできるようになります。これには、SMS および MMS メッセージの受信、下書き、送信、保留などのテーブルが含まれます。

Android 4.4 以降、システム設定により、ユーザーは「デフォルトの SMS アプリ」を選択できます。選択すると、既定の SMS アプリのみが SMS プロバイダーに書き込むことができ、既定の SMSアプリのみが、ユーザーが SMS を受信したときに SMS_DELIVER_ACTION ブロードキャストを受信したり、ユーザーが MMS を受信したときに WAP_PUSH_DELIVER_ACTION ブロードキャストを受信したりします。デフォルトの SMS アプリは、新しいメッセージを受信または送信するときに SMS プロバイダーに詳細を書き込む役割を果たします。

デフォルトの SMS アプリとして選択されていない他のアプリは、SMS プロバイダーを読み取ることしかできませんが、SMS_RECEIVED_ACTION ブロードキャストをリッスンすることで、新しい SMS が到着したときに通知を受けることもできます。これは、複数のアプリに配信される可能性のある中断不可能なブロードキャストです。このブロードキャストは、デフォルトの SMS アプリとして選択されていなくても、電話番号の確認など、特別な受信メッセージを読み取る必要があるアプリを対象としています。

詳細については、ブログ投稿「Getting Your SMS Apps Ready for KitKat」を参照してください。

于 2014-05-16T17:06:00.547 に答える