2

SMSを受信したデバイスにSMSを自動的に送信するAndroidアプリを開発しました。

私のアプリはエミュレーターで正常に動作していますが、実際のデバイス (Android モバイル) で実行すると、SMS のみを受信し、応答を自動的に送信しません。

私のコードは次のとおりです。

public class SMSReciever extends BroadcastReceiver {

    String address;
    String smsMe = "I Recieved Your SMS";

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();

        Object messages[] = (Object[]) bundle.get("pdus");
        SmsMessage smsMessage[] = new SmsMessage[messages.length];
        for (int n = 0; n < messages.length; n++) {
            smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
            address = smsMessage[n].getOriginatingAddress();
        }

        Toast toast = Toast.makeText(context,"Received SMS: " +
                 smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
        toast.show();
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(address, null, smsMe, null, null);
    }
}

何が問題なのかわからない。そして、実際のデバイスで正しく動作しない理由。

4

5 に答える 5

2

SMS を送信するには、このコードを試してください。

//---sends an SMS---
private void sendSMS(String phoneNumber, String message)
{        
    PendingIntent pi = PendingIntent.getActivity(this, 0,
        new Intent(this, class_name.class), 0);                
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, pi, null);        
}    

}

于 2012-09-04T12:17:02.703 に答える
1

ファイルに SMS を送信する権限を追加しましたAndroidManifest.xmlか?

<manifest ...>
    <uses-permission android:name="android.permission.SEND_SMS">
    </uses-permission>
</manifest>

これらは関連する権限です:

SEND_SMS        Allows an application to send SMS messages.
BROADCAST_SMS   Allows an application to broadcast an SMS receipt notification
READ_SMS        Allows an application to read SMS messages.
RECEIVE_SMS     Allows an application to monitor incoming SMS messages, to record or perform processing on them.
WRITE_SMS       Allows an application to write SMS messages.

Dyaの回答が示唆するように、 PendingIntentを使用すると、 sendTextMessage()-methodでアクションをデバッグできるようになります。

エラーコードは次のとおりです。

Activity.RESULT_OK
Activity.RESULT_ERROR_GENERIC_FAILURE
Activity.RESULT_ERROR_RADIO_OFF
Activity.RESULT_ERROR_NULL_PDU

このチュートリアル(およびMo Al Sh の回答) によると、SMS を送信する別の方法が組み込まれています。

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "default content"); 
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
于 2012-09-04T11:56:56.097 に答える
0

メッセージを送信できない理由は、以下を含めていないためです。

message_sc_address sms.sendTextMessage(address, message_sc_address, smsMe, null, null);

このメッセージアドレスは、タブレット/電話のメッセージセクションから取得できます。

于 2013-01-24T03:03:49.507 に答える
0

SMS 権限があるかどうかを確認しましたか

use-permission android:name="android.permission.SEND_SMS"

あなたのマニフェストファイルに?

また、組み込みの SMS アプリケーションを試すこともできます。

Intent sendIntent = new Intent(Intent.ACTION_VIEW);

sendIntent.putExtra("sms_body", "デフォルトのコンテンツ");

sendIntent.setType("vnd.android-dir/mms-sms");

startActivity(sendIntent);

于 2012-09-04T11:56:28.513 に答える