为啥某些联系人会从 android 上的应用程序中被审查?

Posted

技术标签:

【中文标题】为啥某些联系人会从 android 上的应用程序中被审查?【英文标题】:Why are some contacts censored from apps on android?为什么某些联系人会从 android 上的应用程序中被审查? 【发布时间】:2011-04-16 02:19:51 【问题描述】:

如果您尝试使用 android 2.2 Froyo 附带的联系人管理器,它将允许您通过 Contact ContentProvider 访问 sqlite 数据库中的所有联系人。但是如果你编写的应用程序不是 com.android.contacts 由于此处的代码,您只能访问受限表:

http://www.google.com/codesearch/p?hl=en#cbQwy62oRIQ/res/values/unrestricted_packages.xml&q=unrestricted_packages&sa=N&cd=1&ct=rc

如果您尝试使用任何示例,例如 ContactManager 或市场上的任何应用,它将无法访问完整的联系人列表,只能访问受限视图。

受限表似乎只包含带有电话号码的联系人,而排除了一些 facebook 联系人。我在开发者文档的任何地方都找不到任何关于为什么联系人会受到限制的文档?

除了手动root和打开sqlite数据库或使用自定义固件之外,还有其他方法吗?

【问题讨论】:

【参考方案1】:

除了手动root和打开sqlite数据库或使用自定义固件之外,还有其他方法吗?

没有。

【讨论】:

【参考方案2】:

安全性。

流氓应用很容易做出恶意行为(例如将自己发送给您的所有联系人)。

【讨论】:

没有。这就是应用程序特权清单条目的目的。这似乎是固件制造商绕过应用权限系统以阻止应用访问联系人数据库的一种方式。【参考方案3】:

您是否在清单中指定了 android.permission.READ_CONTACTS?

是什么让您相信这部分 Facebook 联系人会在他们的信息中公开他们的电话号码?

【讨论】:

是的,我在我的应用程序中指定了这一点。我想这不是固件制造商可以阻止通过联系人提供者访问可用联系人的更多信息的问题。我的电话簿应用程序的用户经常抱怨应用程序中的联系人与他们的默认电话簿应用程序相比不可用。 @radiofrequency 这有点老了,但你似乎有相反的方式。这不是限制本来不受限制的访问的问题,而是限制本来会受到限制的访问的问题。据我所知,默认状态是(用户?)标记为限制为(部分)不可访问的数据,除非在该系统资源 XML 文件中授予显式权限。这允许固件开发人员对他们知道可以信任的软件包授予对敏感数据的无限制访问权限(这可能会被滥用,但这是另一回事)。

以上是关于为啥某些联系人会从 android 上的应用程序中被审查?的主要内容,如果未能解决你的问题,请参考以下文章

为啥某些 Flask 会话值在关闭浏览器窗口后会从会话中消失,但稍后会在没有我添加它们的情况下重新出现?

为啥 lint 在 Android Studio 中获取联系人列表名称和号码时显示“值 >= 1”?

为啥 TTTAttributedLabel 在 IOS 上的某些特殊符号后不显示最后一行内容?

为啥我的断点会从预期的位置逃跑

Android - 无法获取某些联系人的电话号码

如何在android上的listview中快速加载联系人