2012-09-11 2 views
6

Ich habe ein BroadcastReceiver in meinem Android-Anwendung statisch registriert, die eingehende SMS-Nachrichten verarbeitet, wie folgt aus:Welche Berechtigung sollte mein eingehender SMS-handhabender Empfänger vom System verlangen?

 <receiver 
      android:name=".receivers.SmsReceiver" 
      android:exported="true" > 
      <intent-filter android:priority="100" > 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
      </intent-filter> 
     </receiver> 

Lint markiert diese mit einer Warnung, beacuse der Receiver alle Berechtigungen von dem Anrufer, ohne exportiert wird. Wenn ich die exportierte Eigenschaft auf false setze, kann das System meinen Empfänger beim Abrufen einer SMS nicht anrufen.

Welche Berechtigung sollte ich beim Registrieren meines Receivers für eingehende SMS-Nachrichten vom System anfordern?

Edit:

Ich frage nicht für den "verwendet-Erlaubnis" Tag, dass meine Anwendung ermöglicht SMS-Nachrichten zu empfangen. Ich frage nach dem richtigen "Android: Erlaubnis" -Wert für meinen Empfänger, also nur das System kann Rundsendenachrichten so senden, und eine andere Anwendung kann solch ein Ereignis für meine Anwendung nicht vortäuschen.

ZB:

 <receiver 
      android:name=".receivers.SmsReceiver" 
      android:exported="true" 
      android:permission="com.android.permission.SOME_PERMISSION_ONLY_THE_SYSTEM_HAS"> 
      <intent-filter android:priority="100" > 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
      </intent-filter> 
     </receiver> 
+0

ist das obige Problem im Zusammenhang mit [dieser] (http://code.google.com/p/android/issues/ Detail? id = 36536)? – nandeesh

+0

Leider nein. Ich definiere die richtigen -Tags, damit das System beim Empfang einer SMS benachrichtigt wird und Lint dies nicht als Fehler ansieht. Es sagt mir jedoch, dass mein Empfänger ein "Erlaubnis" -Tag benötigt, so dass nur vertrauenswürdige Quellen meinen SMS-Empfänger benachrichtigen können (der nur das System sein sollte). Aber ich konnte nicht finden, welche Erlaubnis ich verwenden sollte. –

+0

Ich mache etwas ähnliches hier !!! http://stackoverflow.com/questions/14452808/sending-and-receiving-sms-mms-in-android – toobsco42

Antwort

-2

Verwendung android: Priorität = „2147483647“ statt android: Priorität = „100“ da nehme an, Sie jede Anwendung haben mit der Priorität hoch Ihre Priorität ist der Vergleich als u dann stellen Sie Ihren Sende das niemals mit. Überprüfen Sie auch diese Erlaubnis in Ihrem Mainfest verwendet-Erlaubnis Android: Name = "android.permission.RECEIVE_SMS"

+0

Der Wert muss eine Ganzzahl wie "100" sein. Höhere Nummern haben eine höhere Priorität. Der Standardwert ist 0. Der Wert muss größer als -1000 und kleiner als 1000 sein, wie in DOC ref http://developer.android.com/guide/topics/manifest/intent-filter-element.html vorgeschlagen – Pranav

Verwandte Themen