2015-07-12 13 views
9

In conformità con the doc:Blocca SMS in arrivo su Android 4.4 con radice o superiore?

Si noti che, a cominciare da Android 4.4-qualsiasi tentativo da parte vostra applicazione per interrompere la trasmissione SMS_RECEIVED_ACTION viene ignorato in modo tutte le applicazioni interessati hanno la possibilità di riceverlo.

così, unica app SMS predefinita può farlo e si presenta come nulla è cambiato con Android 5.0 (a causa di motivi sconosciuti, secondo issue è contrassegnato come obsoleto).

C'è un modo per bloccare gli SMS in arrivo per l'app SMS non predefinita se il telefono è root (questo è necessario per l'app di blocco dello spam)? Come farlo?

+1

Chi ha downvoted, potresti chiarire il motivo? –

risposta

4

È possibile scrivere un servizio che sovrascrive CarrierMessagingService. Se il collegamento a questa operazione ha esito positivo, il messaggio non viene recapitato all'applicazione principale.

BIND_CARRIER_MESSAGING_SERVICE l'autorizzazione richiesta per la registrazione come servizio di messaggistica per l'operatore richiede che l'app sia app di sistema. Quindi devi inserire la tua app nel sistema.

5

Imposta la tua app come provider SMS predefinito. Quindi può registrarsi a SMS_DELIVER_ACTION. In quel ricevitore, puoi scegliere se scrivere l'SMS nel database oppure no. Se si sceglie di non farlo, l'SMS viene sostanzialmente ignorato. Se si sceglie, qualsiasi altra app può ricevere l'SMS.

+1

La domanda è come farlo senza creare un'app come provider SMS predefinito. –

+4

La domanda non lo affermava. La risposta è che non è possibile - la ragione per cui hanno aggiunto il routing del provider SMS predefinito era impedire le app che utilizzavano la funzionalità maliziosamente. Per evitare un SMS, ora è necessario concedere esplicitamente tale potere all'utente. –

+1

Hai ragione, la domanda non stava dicendo chiaramente. –

2

si può provare la seguente soluzione:

Scorrere l'elenco dei pacchetti in grado di gestire SMS e disabilitarli programmazione.

Per ottenere un'API per disabilitare un'app, è necessario diventare un'app partner MDM (Mobile Device Management). Gli OEM forniscono API aggiuntive alle proprie app partner MDM per controllare il dispositivo. Ad esempio, samsung fornisce api per disabilitare app specifiche Immagino che abbiano anche API per controllare l'autorizzazione di app specifiche.

In alternativa, suppongo che la nuova modalità Android Device/Profile Owner debba disporre di un'API per disabilitare app specifiche.

Problemi correlati