Android: проблема в чтении смс из входящих сообщений на устройстве Samsung Galaxy - PullRequest
1 голос
/ 24 марта 2012

Я хочу читать SMS из входящих сообщений.Приведенный ниже фрагмент кода отлично работает на HTC Desire, но не работает на Samsung 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();

На галактике Samsung c.getCount() возвращает 0, а c.moveToFirst() возвращает false.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Код правильный.Проблема в smsungs sms-app, которое заменяет стандартное приложение android для sms.

0 голосов
/ 24 марта 2012

Я использовал следующий код и отлично работает с 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();
            }
...