Ich mache eine App, die die Nachrichten von einem bestimmten Absender aufzeichnet.Für zB möchte ich alle SMS von der Bank HDFC in einer ListView bekommen.Die Adresse des Absenders in Mein Posteingang heißt "AM-HDFC". Ich habe versucht, den folgenden Code, aber die App stürzt ab, sagen, dass URI nicht gefunden wird. Was wird die mögliche Lösung sein?Lesen von SMS aus Android-Posteingang Wer ist der Absender hat keine Nummer
public class MsgReader extends AppCompatActivity {
Cursor c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_msg_reader);
List<Sms> smslist=getAllSms("inbox");
RecyclerView rView = (RecyclerView) findViewById(R.id.list);
rView.setLayoutManager(new LinearLayoutManager(this));
rView.setHasFixedSize(true);
MsgAdapter rcAdapter = new MsgAdapter(smslist);
rView.setAdapter(rcAdapter);
}
public List<Sms> getAllSms(String folderName) {
List<Sms> lstSms = new ArrayList<Sms>();
Sms objSms = new Sms();
Uri message = Uri.parse("content://sms/");
ContentResolver cr = this.getContentResolver();
c= cr.query(Uri.parse("content://mms-sms/AM-HDFC"), null, null, null, null);
this.startManagingCursor(c);
int totalSMS = c.getCount();
if (c.moveToFirst()) {
for (int i = 0; i < totalSMS; i++) {
objSms = new Sms();
objSms.setId(c.getString(c.getColumnIndexOrThrow("_id")));
objSms.setAddress(c.getString(c.getColumnIndexOrThrow("address")));
objSms.setMsg(c.getString(c.getColumnIndexOrThrow("body")));
objSms.setReadState(c.getString(c.getColumnIndex("read")));
objSms.setTime(c.getString(c.getColumnIndexOrThrow("date")));
lstSms.add(objSms);
c.moveToNext();
}
}
else {
throw new RuntimeException("You have no SMS in " + folderName);
}
c.close();
return lstSms;
}
@Override
protected void onPause() {
super.onPause();
if (c != null) {
c.close();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (c != null) {
c.close();
}
}
}
Danke für Ihre Antwort. Aber leider funktioniert es nicht. Wenn ich die Messaging-App öffne, ist der "A M-HDFC "Ordner wird in einem separaten Ordner namens" Notifications "gespeichert. –
Hmm .. Ich habe nie Unterordner in Messaging-Apps gesehen .. Ich habe die _if_ Anweisung in meiner Antwort entfernt, versuchen Sie es erneut. Wenn es nicht funktioniert, können Sie einen Bildschirm Ihrer Messaging-App posten? –
Immer noch nicht funktioniert und Toast ia auch nicht angezeigt. –