【发布时间】:2016-10-14 11:45:53
【问题描述】:
我想创建一个 Contact Provider,以便我可以从我们的数据库中填充它,并让我们的业务人员拥有所有客户数据。这就是“简单”的部分。
但我需要隔离这些联系人并避免它们被克隆,从而禁止人们复制/克隆它们并丢失该信息。
有没有办法做到这一点?我还没有找到这样做的方法,我认为唯一的方法是在自定义联系人应用程序中显示联系人。该解决方案的问题在于无法知道谁在打电话。
【问题讨论】:
我想创建一个 Contact Provider,以便我可以从我们的数据库中填充它,并让我们的业务人员拥有所有客户数据。这就是“简单”的部分。
但我需要隔离这些联系人并避免它们被克隆,从而禁止人们复制/克隆它们并丢失该信息。
有没有办法做到这一点?我还没有找到这样做的方法,我认为唯一的方法是在自定义联系人应用程序中显示联系人。该解决方案的问题在于无法知道谁在打电话。
【问题讨论】:
有没有办法做到这一点?
在 Android 设备上,大约有零行代码可以了解您创建的自定义 ContentProvider 的任何信息。如果您不想共享来自该提供者的数据,请不要提供任何 UI 以允许人们共享来自该提供者的数据,并且不要将提供者导出到第三方应用程序。
我还没有找到这样做的方法,我认为唯一的方法是在自定义联系人应用程序中显示联系人
无论如何你都需要写那个。大约有 20 亿台 Android 设备。他们都不会有一个联系人风格的应用程序,它知道你创建的一些自定义ContentProvider。
该解决方案的问题在于无法知道谁在打电话。
正确。毕竟,设备的呼叫管理器对您的自定义 ContentProvider 一无所知。
现在,“创建联系人提供者”可能是指“不创建联系人提供者”。在这种情况下,“我可以从我们的数据库中填充它并让我们的业务人员拥有所有客户数据”中的“它”可能意味着标准的 Android ContactsContract ContentProvider。在这种情况下,联系人应用程序和通话屏幕以及与联系人一起使用的所有其他内容都将与您的联系人一起使用。但是,这是系统提供的ContentProvider,导出到第三方应用程序,带有文档等。有数以千计的应用程序,无论是预安装的,还是通过 Play 商店和其他地方提供的,都可以与 ContactsContract 一起使用。您无法阻止这种情况,也无法阻止这些应用对这些数据做任何他们想做的事情。
IOW,你不能同时满足“我希望通讯录应用拥有我的联系人”和“我不希望通讯录应用拥有我的联系人”。
【讨论】: