2016-07-13 7 views
13

Meine Fragen speziell nur für Android 6 (ab Version 23 von SDK). Ich muss alle SMS erhalten, auch Entwurf für zukünftige Verarbeitung. Nichts Besonderes hier verwendet, um die folgenden Frieden von Code:So erhalten Sie Entwurf SMS in Android 6 Marshmallow

context.getContentResolver().query(Uri.parse("content://sms/"), 
new String[] {...}, null, null, null) 

Und diese Arbeit perfekt für Android 5, was bedeutet, dass ich alle SMS-Nachrichten einschließlich Entwurf erhalten. Aber bei allen Geräten mit Android 6 bekomme ich nur Nachrichten gesendet und empfangen und KEINE ENTWURF. Versuchen Sie, meine App standardmäßig SMS zu machen, bevor Sie versuchen, SMS abzufragen - aber kein Glück, bei Android 6 kann ich immer noch keine Nachrichten erhalten. Was ist das Problem? Ich habe bereits festgestellt, einige verwandte Beiträge SMS missing from content provider results on Android Marshmallow Aber dies tun mein Problem gar nicht lösen.

+0

Meiner Meinung nach hat Umair es richtig beantwortet – Sami

Antwort

3

Für Eibisch müssen Sie Laufzeit-Berechtigungen hinzufügen Nachrichten zu lesen.

prüfen Erlaubnis ähnliche

int permissionCheck = ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_SMS); 

Wenn die Erlaubnis zur Laufzeit tha fragen verweigert, wie die

ActivityCompat.requestPermissions(this, new String[]{{Manifest.permission.READ_SMS}, PERMISSIONS_REQUEST_READMESSAGE); 

Entwurf für den Zugriff auf diese ist URI für Content-Provider.

Content-Provider für Entwurf ist

content://sms/draft 

Hinweis: dont Berechtigungen hinzuzufügen vergessen

<uses-permission android:name="android.permission.READ_SMS"></uses-permission> 
1

Ich glaube, was Sie suchen in this answer gefunden wird. Es enthält eine Liste von URIs für den Zugriff auf die verschiedenen SMS-Boxen. Die eine speziell für den Entwurf von SMS-Nachrichten ist

Inhalt: // sms/Entwurf

+2

Das ist nicht funktionieren. Vor Android 6 gibt es kein Problem, um drms sms direkt 'content: // sms/draft' oder sogar nach' content: // sms/'zu bekommen. Aber mit Marshmallow werden sie herausgefiltert. –

0

Abfrage auf URI Inhalt: // sms/Entwurf wird nur die Entwürfe von Meldungen zurück, die sind im SMS-Anbieter gespeichert.

Die standardmäßige Android-Messaging-Anwendung implementiert die Entwürfe der Nachrichten in der Anwendung und fügt die Entwürfe nicht dem SMS-Anbieter hinzu.

Nur der Entwurf Nachrichten, die Teil der SMS-Anbieter sind (kann SMSManager versteckte API addTextMessageDraft hinzugefügt verwenden) wird als Ergebnis zurückgegeben werden, wenn Abfrage auf URI Inhalt: // sms/Entwurf durchgeführt wird.