0

이것은 내 응용 프로그램 의도 필터의 우선 순위를 가장 높게 설정하는 방법입니다. Extras를 수신 한 후 방송을 중단하지만 기본 응용 프로그램은 여전히 ​​SMS를 수신하고 알림 표시 줄은 여전히 ​​있습니다. 메시지 본문을 보여주고 싶지 않기 때문에 가장 짜증나는 메시지 내용을 보여줍니다. 내가 누락 된 것이 있습니까 ??프로그래밍 방식으로 IntentFilter의 우선 순위를 높이는 방법

<receiver android:name=".MySmsReceiver"> 
    <intent-filter android:priority="999"> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
</receiver> 

대신 :

<receiver android:name=".MySmsReceiver" > 
<intent-filter> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED" 
      android:priority="999" 
      /> 
</intent-filter> 
</receiver> 

이 내 수신기의 onReceive() 방법이 방식으로 수신기를 선언하는

public void onReceive(final Context context, Intent intent) { 

    Bundle extras = intent.getExtras(); 
    abortBroadcast(); 
      .... 
} 

답변

0

시도이다

또한
<receiver android:name=".MySmsReceiver" > 
<intent-filter> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED" 
      android:priority="999" 
      /> 
</intent-filter> 
</receiver> 

확인하려고 팔로티 방송을 중단하기 전에 NG 조건 :

편집 :

@Override 
public void onReceive(Context context, Intent intent) { 
    if (intent.getAction().equals(SMS_RECEIVED)) { 
     Bundle extras = intent.getExtras(); 
     if(extras != null) 
      // doBroadcast(); 
     else 
      abortBroadcast(); 
    } 
} 

가 당신을 도움이되기를 바랍니다.

감사합니다.

+0

위에서 언급 한'if (intent.getAction(). equals (SMS_RECEIVED))'와 같이이 조건을 사용할 수 있습니다. 이는 'SMS_RECEIVED'라는 지정된 수신자 만 수신합니다. –

+0

나는 인 텐트에서 데이터를 검색 한 다음 브로드 캐스트를 중단하고 싶습니다. 그러나 브로드 캐스트를 중단하고 내용을 다시 표시하기 전에 네이티브 앱이 의도를 얻습니다. 내가 처리 해야하는'orderbroadcast'와 어떤 시간 간격이 있습니까 ?? – aneela

+0

@aneelasafdar 내가 게시 한 수정 된 솔루션을 참조하십시오. 희망이 당신의 문제를 해결하십시오. –