2015-07-12 23 views
9

Gemäß the doc:Eingehende SMS bei gerootetem Android 4.4 und höher blockieren?

Beachten Sie, dass-beginnend mit Android 4.4-jeder Versuch, durch Ihre Anwendung die SMS_RECEIVED_ACTION Sendung werden ignoriert abbrechen, so dass alle Anwendungen interessiert haben die Chance, es zu erhalten.

so, nur Standard-SMS-App kann es tun und sieht aus wie nichts mit Android 5.0 geändert wird (aus unbekanntem Grunde ist issue nach markiert als veraltet).

Gibt es eine Möglichkeit, eingehende SMS für Nicht-Standard-SMS-App zu blockieren, wenn das Telefon gerootet ist (dies ist für Spam-blockierende App erforderlich)? Wie es geht?

+1

Wer hat downvoted, können Sie bitte warum? –

Antwort

4

Sie könnten einen Dienst schreiben, der CarrierMessagingService überschreibt. Wenn die Bindung erfolgreich ist, wird die Nachricht nicht an die Hauptanwendung gesendet.

BIND_CARRIER_MESSAGING_SERVICE Berechtigung erforderlich, um als Carrier Messaging Service registriert zu werden, erfordert die App System App. Sie müssen also Ihre App auf das System übertragen.

5

Machen Sie Ihre App zum Standard-SMS-Anbieter. Dann kann es sich für SMS_DELIVER_ACTION registrieren. In diesem Empfänger können Sie entweder die SMS in die Datenbank schreiben oder nicht. Wenn Sie dies nicht möchten, wird die SMS grundsätzlich ignoriert. Wenn Sie möchten, kann jede andere App die SMS empfangen.

+1

Die Frage ist, wie es geht, ohne eine App als Standard-SMS-Anbieter zu machen. –

+4

Die Frage hat das nicht gesagt. Die Antwort ist, Sie können nicht - der Grund, warum sie die Standard-SMS-Provider Zeug hinzugefügt wurde, war, um Apps zu verhindern, die die Funktionalität böswillig verwendet. Um eine SMS zu verhindern, muss Ihnen diese Berechtigung vom Benutzer explizit gewährt werden. –

+1

Sie haben Recht, die Frage wurde nicht klar gesagt. –

2

können Sie versuchen, die folgende Lösung:

Iterate durch Liste der Pakete der Lage, SMS-Handling und deaktivieren Sie sie programmatisch.

Um eine API zum Deaktivieren einer App zu erhalten, müssen Sie eine MDM (Mobile Device Management) -Partner-App werden. OEMs bietet zusätzliche APIs zu ihren MDM-Partner-Apps, um das Gerät zu steuern.Zum Beispiel bietet Samsung API, um bestimmte App zu deaktivieren Ich denke, sie haben auch APIs, um die Erlaubnis bestimmter Apps zu kontrollieren.

Alternativ denke ich, dass der neue Android Device/Profile Owner-Modus eine API haben muss, um bestimmte Anwendungen zu deaktivieren.

Verwandte Themen