2011-07-03 5 views
9

들어오는 SMS 메시지를 아무런 문제없이 가로채는 SMS 수신기를 구현했습니다. 그러나 GO SMS Pro를 설치하고 "다른 메시지 알림 사용 안 함"을 설정하면 매우 높은 우선 순위를 설정했지만 내 응용 프로그램 은 브로드 캐스트 메시지를받지 못합니다. 극복 할 수있는 방법이 있습니까? 내 앱이 GoLive SMS Pro의 앱에서 수행하는 작업 중 과 상관없이 항상 내 앱에 SMS 브로드 캐스트를 수신하도록하십시오. 특히 내 앱에 UI 팝업이 표시되지 않으므로 알림이 표시 되나요? GO SMS Pro를 제거하자마자 내 앱이 들어오는 SMS 브로드 캐스트가 시작되어 이 제대로 작동합니다.GO SMS Pro 설치시 SMS 브로드 캐스트 수신기가 호출되지 않음

들어오는 SMS를 받고 GO SMS Pro가 설치된 로그입니다. 일부 마술은 내가 이해하지 못하는 GO SMS Pro에 의해 수행됩니다. 누군가 여기서 할 수있는 일을 설명 할 수 있고, 내 앱이 매번 방송 알림을받을 수 있는지 확인하는 방법을 할 수 있습니까? 그것은 그들이 설정 한 때문에 SMS 프로를 이동 할 때 우선 순위

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 
+0

: HTTP : // stackov 모든 응용 프로그램의 모든 수신기의 목록 erflow.com/questions/6600266/suppress-block-broastreceiver-in-another-app –

답변

12

"꽤 높은"값은 단지 충분하지 그들의 2147483647 (2^31-1)의 절대 최대에. 따라서 당신이 그 가치를 두는 것은 당신의 app이 Go SMS Pro가 설치되기 전에 설치되는 한 괜찮을 것입니다. 왜냐하면 동일한 우선 순위 안드로이드 OS가 "오래된"앱으로 브로드 캐스트를 전달할 것이기 때문입니다 (이것은 나의 경험에서 나온 것입니다, 공식적인 정보가 아닙니다) . Go SMS Pro가 앱보다 먼저 설치되면 사용자에게 상황에 대해 경고해야합니다. 그들은 Go SMS Pro를 다르게 구성하거나 제거한 다음 다시 설치하여 응용 프로그램도 작동 할 수 있습니다.

이 SmsReceiver에 대한 매니페스트의에
+1

테스트 할 여러 SMS 앱을 설치했기 때문에 방법이 있습니다. SMS를 처음 설치 한 경우에도 모든 3 개의 SMS 앱에 대한 알림을받습니다. 내가 설치 한 (그러나 내 :() 아닙니다 –

+2

또한 내 앱의 우선 순위를 2147483647로 설정하고 gosms은 앱을 설치 한 후에도 SMS를 차단합니다. 어떤 아이디어 ??? – droideckar

+0

다른 아이디어? 내 앱은 GoSMS 후에도 설치되며 GoSMS는 여전히 내 앞에 브로드 캐스트를받습니다. 내 우선 순위 수준도 (2^31-1)로 설정했습니다. – evermeire

5

이동 SMS 프로는이 라인을 설정 한 :

<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> 

모든 의도 필터이 리시버는 당신이 볼 수 2147483647로 설정 한 우선 순위가있는 경우에도 수신기에 비해 우선 순위가 높은 만들

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

목록의 첫 번째 수신기가, 다른 사람보다 전에 SMS를 수신

나는 또한이 상황에서 일하고 있어요
관련 문제