Android:在三星Galaxy设备的收件箱中读取短信的问题

时间:2012-03-24 13:02:24

标签: android database sms galaxy

我想从收件箱中阅读短信。下面给出的代码片段适用于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。

提前致谢。

2 个答案:

答案 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标准应用程序。