2014-12-26 6 views
1

У меня есть широковещательный приемник, который начинает активность при получении SMS или WIFI State Changed. Он обнаруживает и работает нормально при изменении состояния WIFI, но не обнаруживает SMS.Приемник вещания, не обнаруживающий SMS

Вот мой Manifest

<uses-permission android:name="android.permission.RECEIVE_SMS"/> 
<uses-permission android:name="android.permission.READ_SMS" /> 
<uses-permission android:name="android.permission.SEND_SMS"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

Регистрация Broadcast Receiver

<receiver android:name=".MyReceiver"> 
    <intent-filter android:priority="999"> 
    <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/> 
    </intent-filter> 
</receiver> 

Java кодекса

public void onReceive(Context context, Intent intent) { 
    Intent i = new Intent(Intent.ACTION_MAIN); 
    i.setClassName("my_package","my_package.class_name"); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(i); 
} 
+0

<приемник андроид: имя = андроид "MyReceiver.": Разрешение = "android.permission.BROADCAST_SMS" андроид: экспортироваться = "истинное"> –

+0

его не работает :( –

+1

Изменить <приемник андроид: имя = "MyReceiver" > к полному пути .MyReceiver, example com.example.MyReceiver –

ответ

0

Оказывается, что некоторые другие приложения потребляют событие. Например, GO SMS Pro имеет приоритет, равный 2^31-1 = 2147483647, и, когда это явно не сказано, оно предотвращает распространение события (прерывает широковещательную передачу).

Проверьте телефон на наличие приложений, которые обрабатывают SMS, и попытайтесь отключить их для целей тестирования.