SMS Broadcastreceiver no se llama cuando GO SMS Pro instalado

He implementado un receptor SMS que intercepta los mensajes SMS entrantes sin ningún problema. Sin embargo, cuando instalo GO SMS Pro y establezco "Desactivar otra notificación de mensaje", mi aplicación no recibe ningún mensaje de difusión aunque he establecido la prioridad en el filtro de intenciones muy alto. ¿Hay una manera de superar para que mi aplicación siempre recibe una transmisión de SMS, independientemente de lo que hace el usuario en la aplicación Go SMS Pro, sobre todo porque mi aplicación no muestra ninguna notificación de interfaz de usuario emergente? Tan pronto como desinstalo GO SMS Pro, mi aplicación comienza a recibir emisiones de SMS entrantes y funciona bien.

Aquí está el registro cuando se recibe un SMS entrante y se instala GO SMS Pro. Hay algo de magia hecha por GO SMS Pro que no entiendo. ¿Puede alguien explicar lo que se hace aquí y cómo puedo asegurarme de que mi aplicación recibe una notificación de difusión ordenada cada vez.

07-02 19:52:21.674: INFO/Zygote(25209): Zygote: pid 25209 has INTERNET permission, then set capability for CAP_NET_RAW 07-02 19:52:21.820: INFO/ActivityThread(25209): Publishing provider go-sms: com.jb.gosms.provider.GoSmsProvider 07-02 19:52:21.830: INFO/ActivityThread(25209): Publishing provider go-mms-sms: com.jb.gosms.provider.GoMmsSmsProvider 07-02 19:52:21.834: INFO/ActivityThread(25209): Publishing provider com.jb.gosms.im;com.jb.gosms.chat: com.jb.gosms.im.database.ImContentProvider 07-02 19:52:21.842: INFO/ActivityThread(25209): Publishing provider com.jb.gosms.schedule.Schedule: com.jb.gosms.schedule.ScheduleProvider 07-02 19:52:21.846: INFO/ActivityThread(25209): Publishing provider go-mms: com.jb.gosms.provider.GoMmsProvider 07-02 19:52:21.959: DEBUG/dalvikvm(25209): GC_FOR_MALLOC freed 2657 objects / 173112 bytes in 30ms 07-02 19:52:22.182: DEBUG/dalvikvm(25209): Trying to load lib /data/data/com.jb.gosms/lib/libHanzi2Pinyin.so 0x47d4cf70 07-02 19:52:22.182: DEBUG/dalvikvm(25209): Added shared lib /data/data/com.jb.gosms/lib/libHanzi2Pinyin.so 0x47d4cf70 07-02 19:52:22.182: DEBUG/dalvikvm(25209): No JNI_OnLoad found in /data/data/com.jb.gosms/lib/libHanzi2Pinyin.so 0x47d4cf70, skipping init 07-02 19:52:22.186: INFO/Hanzi2Pinyin_Native(25209): InitLib in ver=3141000 07-02 19:52:22.186: INFO/Hanzi2Pinyin_Native(25209): Init in 07-02 19:52:22.186: INFO/Hanzi2Pinyin_Native(25209): file size=155203 07-02 19:52:22.186: INFO/Hanzi2Pinyin_Native(25209): Init out 07-02 19:52:22.186: INFO/Hanzi2Pinyin_Native(25209): Instance out Init = 21 07-02 19:52:22.186: INFO/Hanzi2Pinyin_Native(25209): InitLib out 07-02 19:52:22.467: DEBUG/dalvikvm(25209): GC_FOR_MALLOC freed 5960 objects / 376104 bytes in 29ms 07-02 19:52:22.815: DEBUG/IMS/Ims3GPP2SmsMessage(25209): IMSLogcreateFromPdu : calling parsePdu 07-02 19:52:22.815: DEBUG/IMS/Ims3GPP2SmsMessage(25209): IMSLogpdu to parse : 000002100202070292A106A85A0008150003100730010610254E9D3A000306110702195220 07-02 19:52:22.815: DEBUG/IMS/Ims3GPP2SmsMessage(25209): IMSLogparseAddress 07-02 19:52:22.815: DEBUG/IMS/Ims3GPP2SmsMessage(25209): IMSLogaddress received :3233292992 07-02 19:52:22.815: DEBUG/IMS/Ims3GPP2SmsMessage(25209): IMSLogbearer data received : 0003100730010610254E9D3A000306110702195220 07-02 19:52:22.815: ERROR/bearer data(25209): bearer data obtained 1 07-02 19:52:22.815: DEBUG/EMS(25209): messageType is 1 messageId is 115 hasUserDataHeader is false 07-02 19:52:22.858: DEBUG/IMS/Ims3GPP2SmsMessage(25209): IMSLogcreateFromPdu : calling parsePdu 

"Muy alto" valor de prioridad no es suficiente cuando se trata de Go SMS Pro, ya que han establecido su máximo absoluto de 2147483647 (2 ^ 31-1). Así que si usted pone ese valor que va a estar bien siempre y cuando su aplicación está instalada antes de Go SMS Pro es porque cuando en la misma prioridad Android OS pasará difusión a "más viejo" app (Esto es de mi experiencia, no una información oficial) . Si Go SMS Pro se instala antes de su aplicación, debe avisar a sus usuarios sobre la situación. Podrían configurar Go SMS Pro de forma diferente o desinstalarlo y volver a instalarlo de nuevo para que su aplicación también pueda funcionar.

Go sms pro ha establecido estas líneas en su manifiesto para SmsReceiver:

 <receiver android:name=".smspopup.SmsReceiver" android:permission="android.permission.BROADCAST_SMS"> <intent-filter android:priority="2147483647"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter android:priority="2147483647"> <action android:name="android.provider.Telephony.GSM_SMS_RECEIVED" /> <category android:name="android.intent.category.DEFAULT" /> </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="com.android.mms.transaction.MESSAGE_SENT" /> </intent-filter> </receiver> 

Todos estos filtros de intención hacen que su prioridad sea mayor que su receptor, incluso si su receptor tiene la prioridad establecida en 2147483647. puede ver la lista de todos los receptores de todas las aplicaciones por:

 List<ResolveInfo> receivers = getPackageManager().queryBroadcastReceivers(new Intent("android.provider.Telephony.SMS_RECEIVED"), 0); 

El primer receptor en la lista, recibe el sms antes que otros

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.