0

4G ネットワークを使用して BroadcastReceiver からインテントを受信して​​いません。次のコードを使用して、SMS送信結果をコードで受信しています。2G セル ネットワークでは正しい結果が得られますが、4G では得られません。
何らかのアイデアがある場合は、返信してください。
ありがとう。

registerReceiver(sendBroadcastReceiver, new IntentFilter("SENT"));
sendBroadcastReceiver = new BroadcastReceiver()
{
    int result = getResultCode();
    @Override
    public void onReceive(Context context, Intent intent)
    {
        switch (result)
        {
            case Activity.RESULT_OK:
                System.out.println("Received response");
                break;  
            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                addFailedResultsInList("RESULT_ERROR_GENERIC_FAILURE");
                break;
            case SmsManager.RESULT_ERROR_NO_SERVICE:
                addFailedResultsInList("RESULT_ERROR_NO_SERVICE");
                break;
            case SmsManager.RESULT_ERROR_NULL_PDU:
                addFailedResultsInList("RESULT_ERROR_NULL_PDU");
                break;
            case SmsManager.RESULT_ERROR_RADIO_OFF:
                addFailedResultsInList("RESULT_ERROR_RADIO_OFF");
                break;

        }
    }
};

    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
4

2 に答える 2

0

BroadcastReceiver を作成するだけでなく、取得したいイベントに登録する必要があります。このチュートリアルに従うことをお勧めし ます http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html

SMSの受信について通知を受けたい場合は、イベントに登録する必要があります

android.provider.Telephony.SMS_RECEIVED

そのhttp://developer.android.com/reference/android/Manifest.permission.html#RECEIVE_SMSの許可をリクエストし ます

于 2012-06-23T06:32:30.873 に答える
0
sendBroadcastReceiver = new BroadcastReceiver()
{
    @Override
    public void onReceive(Context context, Intent intent)
    {

        result = getResultCode (); //<-------------------

        switch (result)
        {
            case Activity.RESULT_OK:
                System.out.println("Received response");
                break;  
            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                addFailedResultsInList("RESULT_ERROR_GENERIC_FAILURE");
                break;
于 2012-06-23T06:40:34.587 に答える