我想从收件箱中阅读短信。下面给出的代码片段适用于HTC Desire,但不适用于三星Galaxy。
Uri uri = Uri.parse("content://sms/inbox");
Cursor c= getContentResolver().query(uri, null, null ,null,null);
startManagingCursor(c);
String[] body = new String[c.getCount()];
String[] number = new String[c.getCount()];
System.out.println("c.getCount() :: " + c.getCount() + " c.moveToFirst() :: " + c.moveToFirst());
if(c.moveToFirst()) {
for(int i=0;i<c.getCount();i++) {
body[i]= c.getString(c.getColumnIndexOrThrow("body")).toString();
number[i]=c.getString(c.getColumnIndexOrThrow("address")).toString();
c.moveToNext();
}
}
c.close();
在三星Galaxy c.getCount()
上返回0,c.moveToFirst()
返回false。
提前致谢。
答案 0 :(得分:0)
我使用了以下代码,并且可以与android galaxy Tab和galaxy手机一起使用。 这些值甚至会显示在日志中,以便于实施。
Uri uri = Uri.parse("content://sms/inbox");
Cursor c = null;
try {
String columns[] = new String[] { "person", "address", "body",
"date", "status" };
String sortOrder = "date DESC";
c = context.getContentResolver().query(uri, null, null, null,
null);
for (int j = 0; j < c.getColumnNames().length; j++) {
Log.v("INBOX"," name " + c.getColumnNames()[j].toString());
}
} catch (Exception e) {
e.printStackTrace();
}
答案 1 :(得分:-1)
代码是正确的。问题是samsungs sms-app,它取代了sms的androids标准应用程序。