0

我想在 content://sms 上做一个 select distinct 为了做到这一点,我需要知道如何将 content://sms 作为数据库打开并对其进行原始查询。

目前我正在通过 contentResolver 使用普通查询,如下所示:

  ContentResolver mContectResolver = context.getContentResolver();
  Uri uri = Uri.parse("content://sms/");
  String[] mProjection = {
        "address",
        "person",
        "body",
        "seen"
  };
  Cursor cursor = mContectResolver.query(uri, mProjection, null, null, null);

任何帮助表示赞赏。

4

1 回答 1

1

这个问题的答案是:

除非您具有打开此数据库的 root 权限,否则您无法对 Android 内部数据库(如 content://sms/)进行原始查询。

原生 Android 会阻止这个数据库,并且有一个特殊的工具可以以有限的权限打开它,这个工具称为 ContentResolver。

了解信息可能会很方便:如果要搜索此数据库,它将位于 /data/data/databases 文件夹中。从有根手机或 Android 虚拟设备中搜索它。

于 2013-07-22T10:01:42.893 回答