2016-03-01 36 views
1

我想查询线程表mmssms.db,但是,我跑我的查询时得到此异常。如何查询mmssms.db线程表

Uri uri = Telephony.Threads.CONTENT_URI; 
    String[] prj = new String[]{"_id", Telephony.ThreadsColumns.RECIPIENT_IDS}; 
    Cursor cur = getApplicationContext().getContentResolver().query(uri, prj, "_id=?", new String[]{"10"}, null); 
    if (cur != null) { 
     System.out.println(DatabaseUtils.dumpCursorToString(cur)); 
     cur.close(); 
    } 

这个例外让我觉得我以某种方式让Uri的线程表错误。任何想法是什么正确的方式来查询mmssms.db中的线程表?

我可以通过将数据库下载到我的计算机并在DB浏览器中打开它来验证线程表是否存在于mmssms.db中。

回答

0

原来是Uri。这里是工作代码:

Uri uri = Uri.parse("content://mms-sms/conversations?simple=true"); 
     final String[] prj = new String[]{"_id", "recipient_ids"}; 
     Cursor cur = ctx.getContentResolver().query(uri, prj, "_id=?", new String[]{thread_id}, null); 
     if (cur != null) { 
      System.out.println(DatabaseUtils.dumpCursorToString(cur)); 
      cur.close(); 
     } 

关键的区别就在这里为:content://mms-sms/conversations?simple=true