2014-01-16 6 views
1

문제가 있습니다. 응용 프로그램을 설치 한 후 SMS 브로드 캐스트가 성공적으로 가로 채게됩니다. 그러나 재부팅 후, 모든 도청 SMS 방송은 여전히 ​​(표준 SMS는 응용 프로그램에서) 알림 표시 줄Android. 오류. 재부팅 후 팝업 SMS 알림

브로드 캐스트 리시버에 팝업 :

public class OwnSmsBroadcastextends BroadcastReceiver{ 
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; 
public void onReceive(Context context, Intent intent) { 

     final Bundle bundle = intent.getExtras(); 
     if (intent.getAction().equals(SMS_RECEIVED)) { 
      abortBroadcast(); 

     try {... 

매니페스트 :

<receiver android:name=".OwnSmsBroadcast" android:permission="android.permission.BROADCAST_SMS"> 
      <intent-filter android:priority="10000"> 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
       <action android:name="android.provider.Telephony.SMS_DELIVERED" /> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
    </receiver> 

왜 다시 부팅 한 후 모든 차단 notofications 팝업?

+0

테스트 할 Android 버전은 무엇입니까? 그리고 타사 SMS 앱이 설치되어 있지 않습니까? – Jim

+0

장치 - 넥서스 S. 안드로이드 4.1.2 안드로이드 순수 - 다른 애플 리케이션은 "타사"으로 – user1755546

+0

를 설치하지 나는 또한 구글의 행 아웃 (구 구글 음성)에 대해 부탁 해요 - 즉, 설치되어 있습니까? – Jim

답변

1

Google 행 아웃 2.0은 SMS_RECEIVED 의도에 문제를 일으 킵니다. 인 텐트 필터는 MAX_INTEGER 값 2,147,483,647로 설정됩니다.이 값은 10,000을 초과합니다. 설명서에 따르면 PRIORITY는 1,000을 초과해서는 안되며 (999로 설정해야하는 최고 값) 이상으로 '예측할 수없는 동작'이 발생합니다. 일반적으로 우선 순위가 높은 것은 Android에서 사용되는 순서입니다.

행 아웃에서 SMS를 사용 중지하거나 제거하려면이 문제를 해결하세요.

참고 - 킷캣 (V4.4의 +) 만 기본 SMS 앱이 그것을받을 때까지 SMS_DELIVERED가 유효하지 않습니다. 따라서 기본 SMS 응용 프로그램을 사용하기 위해 몇 가지 다른 기능을 구현하지 않으면 필요하지 않습니다. KitKat에서 SMS_RECEIVED는 여전히 브로드 캐스트되므로 알림을 받지만 중단 할 수는 없습니다.

+0

문제되지 행 아웃, 다른 응용 프로그램에서 시도합니다. 둘째, 행 아웃은 시스템과 함께 설치되므로 Google Play와 같은 시스템 앱 권한이있을 수 있으므로 우선 순위 수준은 시스템 수준 앱으로 허용됩니다. – user1755546

+0

먼저 아무런 문제 (프로 바둑 SMS)를, 나는 문서 GOSMS 포함 "예측할 수없는 행동"라는 점을 강조하지 그것을 할 – Jim