Android SMS API

Ich weiß, dass der SMS-Content-Provider nicht Teil der öffentlichen API ist (zumindest nicht dokumentiert), aber wenn ich es richtig verstehe, ist es immer noch möglich, viele SMS-Funktionen zu nutzen, solange du weißt, wie man die API (?) Benutzt.

ZB ist es ziemlich einfach, eine SMS in Ihren Posteingang einzufügen:

  • Effizienter Weg, um JSON mit Android zu analysieren
  • Wie man Animation wie Pfad Anwendung in Android zu erstellen
  • IOS: Wie man Verhalten wie Android's startActivityForResult zu erreichen
  • OnCreateOptionsMenu wird niemals aufgerufen
  • So blättern Sie nach unten in einem ScrollView beim Aktivitätsstart
  • Android-Fehler aufgrund falscher Java-Version
  • ContentValues values = new ContentValues(); values.put("address", "+457014921911"); contentResolver.insert(Uri.parse("content://sms"), values); 

    Leider löst dies nicht die Standard-Benachrichtigung "new-SMS-in-your-inbox" aus. Ist es möglich, das manuell auszulösen?

    Bearbeiten : AFAIK die "Standard-Mail-Anwendung (Messaging)" in Android hört auf eingehende SMS mit der android.permission.RECEIVE_SMS-Berechtigung. Und dann, wenn eine neue SMS angekommen ist, wird eine Status-Bar-Benachrichtigung mit einer "speziellen" Benachrichtigungs-ID eingefügt. So eine Lösung für mein Problem (oben) könnte sein, um zu finden, und senden Sie die richtige Sendung Absicht; So etwas wie "NEUE SMS HAT ANGEKOMMEN" -intent.

    Bearbeiten : Eine Drittanbieter-Messaging-Anwendung ( chompsms ) aus dem Android-Markt heruntergeladen. Diese Anwendung erfüllt meine Bedürfnisse besser. Wenn ich den Code über den chompsms auslege, bemerke die neue sms und zeigt die "standard status bar notification" an. Also würde ich sagen, dass die Standard-Android-Messaging-Anwendung nicht sms richtig erkennt? Oder liege ich falsch?

  • Android-Upgrade der vorhandenen App
  • Gradle ohne Abhängigkeiten in veröffentlichten pom.xml
  • ActivityNotFoundException In Google Plus
  • File.deleteOnExit - Unix Trick aus Kommentaren
  • Wie kann man mit WebView in Android kommunizieren?
  • Android, Wie Begrenzung der Breite von TextView (und fügen Sie drei Punkte am Ende des Textes)?
  • 3 Solutions collect form web for “Android SMS API”

    Leider ist der für diese Benachrichtigungen zuständige Code in der Messaging-Anwendung verborgen. Die Klasse MessagingNotification hat eine static Methode updateAllNotifications , die Sie mit einem PathClassLoader und Reflexion aufrufen könnten:

     PathClassLoader c = new PathClassLoader("/system/app/Mms.apk", getClassLoader()); Class.forName("com.android.mms.util.ContactInfoCache", true, c) .getMethod("init", Context.class).invoke(null, context); Class.forName("com.android.mms.transaction.MessagingNotification", true, c) .getMethod("updateAllNotifications", Context.class).invoke(null, context); 

    Das ist offensichtlich eine sehr schlechte Idee aus mehreren Gründen, aber ich kann nicht an einen anderen Weg denken, was du beschrieben hast.

    Könnten Sie nach der SMS eine PUSH-Benachrichtigung auslösen?

    Thread: Unterstützt Android-Support in Echtzeit Echtzeit-Benachrichtigung?

    Vielleicht solltest du es ersetzen

     content://sms 

    mit

     content://sms/inbox 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.