如何在Android中获取所有短信

时间:2015-06-17 06:47:27

标签: android android-cursor

我正在尝试在android中获取所有短信(包括收件箱,发送短信)。 我试过这些

        Uri uri_sent = Uri.parse("content://sms");

        Cursor c_sent = getContentResolver().query(uri_sent, null, null, null,
                null);
        startManagingCursor(c_sent);

        // Read the inbox sms data and store it in the list
        if (c_sent.moveToFirst()) {
            for (int i = 0; i < c_sent.getCount(); i++) {

                SmsDataClass sms = new SmsDataClass();

                sms.setAddress(c_sent.getString(
                        c_sent.getColumnIndexOrThrow("address")).toString());
                sms.setBody(c_sent.getString(
                        c_sent.getColumnIndexOrThrow("body")).toString());
                sms.setDate(c_sent.getString(
                        c_sent.getColumnIndexOrThrow("date")).toString());
                sms.set_id(c_sent
                        .getString(c_sent.getColumnIndexOrThrow("_id"))
                        .toString());
                sms.setType(c_sent.getString(
                        c_sent.getColumnIndexOrThrow("type")).toString());
                // sms.setTitle(c.getString(c.getColumnIndexOrThrow("title")).toString());

                all_sms_data.add(sms);

                c_sent.moveToNext();
            }
        } else
            c_sent.close();

它有时会起作用,但它不能定期工作。有时它会在c_sent.getColumnIndexOrThrow("address"),c_sent.getColumnIndexOrThrow("body") ...上显示空指针异常。

有什么问题? 我不明白 在oneday之前,当今天我有nullpointer异常时它工作正常。 为什么???

0 个答案:

没有答案