2012-08-12 6 views
0

Je construis une application simple pour recevoir l'aide SMSbroadcast receiver sur la plate-forme ICS, mais il est ne reçoit pas du tout SMS ... il ne montre pas un Toast?récepteur sms du récepteur de diffusion

J'ai 3 classe:

  1. MessageActivity: qui est la principale classe
  2. SimpleSmsRecever: pour recevoir sms
  3. Répondre: répondre

mon fichier Mainfest est:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.message" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="15" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".MessageActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 


     <receiver android:name=".SmsReceiver" > 
      <intent-filter> 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
      </intent-filter> 
     </receiver> 
    </activity> 
    <activity android:name=".Reply" > 
    </activity> 
</application> 
<uses-permission android:name="android.permission.READ_SMS" /> 
<uses-permission android:name="android.permission.SEND_SMS" /> 
<uses-permission android:name="android.permission.RECEIVE_SMS" /> 

Mon code pour recevoir Sms est:

public class SmsReceiver extends BroadcastReceiver { 

private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; 
private static final String TAG = "SMSBroadcastReceiver"; 
private static String sender, body; 
private static int flag = 0; 

@Override 
public void onReceive(Context context, Intent intent) { 

    MessageActivity mvt = null; 

    Log.i(TAG, "Intent recieved: " + intent.getAction()); 

    if (intent.getAction() == SMS_RECEIVED) { 
     Bundle bundle = intent.getExtras(); 
     if (bundle != null) { 
      Object[] pdus = (Object[]) bundle.get("pdus"); 
      final SmsMessage[] messages = new SmsMessage[pdus.length]; 
      for (int i = 0; i < pdus.length; i++) { 
       messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
      } 

      if (messages.length > -1) { 
       flag = 1; 
       sender = messages[0].getOriginatingAddress(); 
       body = messages[0].getMessageBody(); 
       Log.i(TAG, 
         "Message recieved: " + messages[0].getMessageBody()); 
       Toast.makeText(context, messages[0].getMessageBody(), 
         Toast.LENGTH_SHORT).show(); 

      } 
     } 
    } 
} 
} 

S'il vous plaît aider, je genre d'ai le sentiment qu'il a quelque chose à voir avec ICS. Je l'ai lu quelque part en googlant ... Merci.

+0

aider les gars pls c'est urgent: (pls et thanx à l'avance –

+0

Depuis honeycomb vous devez lancer à l'application d'abord avant de recevoir le casting du forum.Aussi d'autres applications pourraient être l'attraper (GoSMS par exemple) – scottyab

Répondre

-1

Je ne suis pas sûr de cette solution mais remplace les méthodes onPause et onResume.

Questions connexes