2012-02-11 13 views
0

Я пытаюсь использовать BroadcastReceiver для действия в названии. Я создал 2 класс: 1) Деятельность, которая регистрирует мой BroadcastReceiver. 2) Класс, который расширяет BroadcastReceiver и отменяет метод onReceive.Android: BroadcastReceiver SMS_RECEIVED

Манифест не содержит ошибок, поэтому я решил опубликовать его здесь, а также два класса.

Спасибо за внимание. P.S = Я не английский, так что извините, если мои вопросы есть грамматические ошибки;)

public class SMSBroadcastReceiver extends BroadcastReceiver { 

private static final String TAG = "SMSBroadcastReceiver"; 

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

if (intent.getAction().equalsIgnoreCase("SMS_RECEIVED")){ 
    Log.d(TAG, "Un messaggio ricevuto"); 
    Toast.makeText(context, "Un messaggio ricevuto", Toast.LENGTH_LONG).show(); 
    } 
    } 
} 



public class SMSyncHome extends Activity { 

private SMSBroadcastReceiver SMSreceiver; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    SMSreceiver = new SMSBroadcastReceiver(); 
    registerReceiver(SMSreceiver, new IntentFilter("android.provider.Telephony.SMS_RECEIVED")); 
    } 

     } 


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

    <uses-sdk android:minSdkVersion="10" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.RECEIVE_SMS"/> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 

     <activity android:name=".SMSyncHome" 
        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:name=".SMSBroadcastReceiver" android:enabled="true"> 
      <intent-filter > 
       <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
      </intent-filter> 
     </receiver> 

    </application> 

</manifest> 
+0

В чем проблема? – Raffaele

+0

Когда я получаю сообщение, ничего не происходит. Ничего в журнале и ничего для Toast – Contervis

+0

Прежде всего, вы можете попробовать удалить строку registerReceiver(), так как вам нужно только объявить вас Receiver один раз, и вы уже делаете это в своем манифесте. Я не знаю, могут ли они конфликтующие – Raffaele

ответ

0

Действие, которое вы подходите в вашем BroadcastReceiver должны быть android.provider.Telephony.SMS_RECEIVED, а не только последнюю часть.

+0

Спасибо, я исправил его, но уже ничего не происходит. Я также удалил метод registerReceiver из этой операции. – Contervis

+0

Что делать, если вы удалите весь блок if()? – Raffaele

+0

Сделано, ничего не изменится ... я сойду с ума от этой вещи – Contervis

Смежные вопросы