2012-09-11 13 views
6

Ho un BroadcastReceiver registrata staticamente nella mia applicazione Android, che gestisce i messaggi SMS in arrivo, in questo modo:Quale autorizzazione deve richiedere il ricevitore di gestione degli SMS in arrivo dal sistema?

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

marchi Lint questo con un avvertimento, Allucinante il ricevitore viene esportato senza bisogno di permessi dal chiamante. Se imposto la proprietà esportata su falso, il sistema non riesce a chiamare il mio ricevitore quando riceve un messaggio SMS.

Quindi, quale autorizzazione devo richiedere dal sistema quando si registra il ricevitore per gestire i messaggi SMS in entrata?

Edit:

Non sto chiedendo per il tag "usa-permesso" che consente la mia domanda per ricevere i messaggi SMS. Sto chiedendo il valore corretto per "android: permission" per il mio Receiver, quindi solo il sistema può inviare messaggi broadcast di questo tipo, e un'altra applicazione non può falsificare un evento come quello per la mia applicazione.

Esempio:

 <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

è il problema precedente relativo a [questo] (http://code.google.com/p/android/issues/ detail? id = 36536)? – nandeesh

+0

Purtroppo no. Sto definendo i tag corretti in modo che quando il sistema riceve un SMS, ricevo una notifica e Lint non lo vede come un errore. Mi dice comunque che il mio ricevitore ha bisogno di un tag "permesso", in modo che solo le fonti attendibili possano notificare al mio sms-receiver (che dovrebbe essere solo il sistema). Ma non sono riuscito a trovare quale permesso dovrei usare. –

+0

Sto facendo qualcosa di simile QUI !!! http://stackoverflow.com/questions/14452808/sending-and-receiving-sms-mms-in-android – toobsco42

risposta

-2

utilizzare Android: priority = "2147483647" al posto di Android: priority = "100" perché si supponga di aver utilizzando qualsiasi applicazione che la priorità è alta confrontando per la vostra priorità come u impostare allora la vostra la trasmissione non lo notifica mai. controlla anche questa autorizzazione nel tuo mainfest uses-permission android: name = "android.permission.RECEIVE_SMS"

+0

Il valore deve essere un numero intero, ad esempio "100". I numeri più alti hanno una priorità più alta. Il valore predefinito è 0. Il valore deve essere maggiore di -1000 e inferiore a 1000. come suggerito in DOC ref http://developer.android.com/guide/topics/manifest/intent-filter-element.html – Pranav

Problemi correlati