Frage

Ich mag die WAP-Push-Nachricht empfangen. Mein Code ist Beitrag wie folgt:

public class PushMsgReceiver extends BroadcastReceiver {
public final static String TAG = "Push Receiver";

private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
private static final String PUSH_RECEIVED = "android.provider.Telephony.WAP_PUSH_RECEIVED";

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Log.i(TAG, "Intent recieved: " + intent.getAction()); 

    if (intent.getAction().equals(SMS_RECEIVED)) {
        //toast to show result
        Log.i(TAG, "SMS: " + intent.getAction());
        Toast.makeText(context, "SMS_RECEIVED", Toast.LENGTH_LONG).show();


    }
    if (intent.getAction().equals(PUSH_RECEIVED)) { 
        //toast to show result
        Log.i(TAG, "PUSH: " + intent.getAction());
        Toast.makeText(context, "PUSH MSG", Toast.LENGTH_LONG).show();
    }
}

}

Das Manifest ist Beitrag wie folgt:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.test.pushmsg"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".main"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    <receiver android:enabled="true" android:name=".PushMsgReceiver">
     <intent-filter>
      <action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
      <action android:name="android.provider.Telephony.SMS_RECEIVED" />
     </intent-filter>
    </receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
</manifest>

Es kann die SMS_RECEIVED erhalten, kann aber die WAP_PUSH_RECEIVED nicht erhalten. Also, wer weiß, warum? Ich habe versucht registerReceiver () zu verwenden, aber es funktioniert auch nicht.

War es hilfreich?

Lösung

Sie müssen den Empfänger ändern und fügen Sie Datenteil mimen.

<receiver android:name=".IncomingMMS" android:enabled="true">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
                <data android:mimeType="application/vnd.wap.mms-message" />
            </intent-filter>
            <intent-filter>
                <action android:name="net.everythingandroid.smspopup.MESSAGE_RECEIVED" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.android.mms.transaction.MESSAGE_SENT" />
            </intent-filter>
        </receiver>

Andere Tipps

Das Android Notifier-Projekt ist ein gutes Beispiel dafür, wie Wap Push / MMS Notifier erhalten:

http://code.google.com/p/android-notifier/

Zur Zeit ist die Quelle unvailable für dieses Projekt aber

dieses Duplikat hat die Antwort für MMS / SMS - für WAP-Push Verwendung der MIME-Typ Antwort oben

Ich habe das Problem gelöst.

Die android.provider.Telephony.WAP_PUSH_RECEIVED Absicht wurde eine MIME Art vor senden gesetzt.

So Hinzufügen der MIME Art in einem offenkundigen Willen funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top