【问题标题】:List of Mimetypes supported by android contactsandroid 联系人支持的 Mimetypes 列表
【发布时间】:2015-04-06 15:58:05
【问题描述】:

我正在准备一个联系人应用程序,我需要在其中获取 android 联系人支持的 Mimetypes 列表。 例如:一些设备支持SIP address 和一些设备。 所以我想在支持时插入 SIP 地址,那么如何检查是否支持 mimetype。 我在com.android.providers.contacts 包中的android 联系人数据库中找到了mimetypes 表。 我将如何访问 contacts2.db 数据库中的 mimetypes 表。

请帮忙。 感谢您的帮助。

【问题讨论】:

  • 抱歉,我不希望联系人与 mimetype 相关联。我想要设备@Abhi 支持的mimetypes 列表
  • 看来下面的答案并没有解决问题,您是否找到了解决原始问题的方法,即阅读 mimetypes?
  • @Tito 可能是由于 Android API 的变化。之前它曾经可以工作,我将相应地进行更改和更新。
  • 这个问题似乎是在询问 Mimetypes 的列表,我不明白哪个变量包含该列表

标签: android database android-contacts


【解决方案1】:

如果您想检查设备是否支持 mimetype - 这就是您要执行的操作

Uri entityUri =
  Uri.withAppendedPath(
         ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId), Entity.CONTENT_DIRECTORY);

Cursor c =
  getContentResolver().query(
    entityUri,
    new String[] {
      RawContacts.SOURCE_ID, Entity.DATA_ID, Entity.MIMETYPE, Entity.DATA1 },
    null, null, null);

try {
     while (c.moveToNext()) {
         String sourceId = c.getString(0);
         if (!c.isNull(1)) {
             String mimeType = c.getString(2);
             String data = c.getString(3);
                PackageManager packageManager = context.getPackageManager();
                Intent testIntent = new Intent(Intent.ACTION_VIEW);
                testIntent.setType(mimeType );
                if (packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0) {
                      // do something - it is supported
                  } else {
                  return false;
                }
         }
     }
} finally {
     c.close();
}

【讨论】:

  • 但是我没有以前存储的任何联系人所以我如何添加 rawContactId。
  • 所以你没有联系人,但你想找出Android联系人支持的MiMETypes?
  • 访问联系人数据库?我很迷惑。而如果您有 MimeTypes 列表并且您想知道是否有处理程序 PackageManager packageManager = context.getPackageManager(); Intent testIntent = new Intent(Intent.ACTION_VIEW); testIntent.setType(mimeType ); if (packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0) { // do something - it is supported } else { return false; }
  • 很抱歉给您带来了困惑。但由于我没有存储任何 mimetypes,我想从联系人数据库的 Mimetypes 表中检索它。我该怎么做?
  • 使用 stackoverflow.com/questions/12562151/android-get-all-contacts 列出所有联系人 - 并为每个联系人找出关联的 MimeType,如 String mimeType = c.getString(2)
猜你喜欢
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 2012-06-25
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
相关资源
最近更新 更多