用于加密存储的自定义ContentProvider

时间:2010-12-22 10:02:17

标签: android android-contentprovider

我有一些加密存储(SQLite),并希望实现我自己的ContentProvider。前提条件是:

  • 只有在获得/可能时才能访问 工作/开始我的应用程序 - 总之 其他情况下访问必须被拒绝 返回用户/应用程序一些 智能消息/返回码

所以问题是:有可能吗?如果是,请给我一些提示如何开始。

3 个答案:

答案 0 :(得分:1)

我不确定我完全理解你的问题,所以这个答案可能不适合你。

如果您希望用户能够选择哪些应用程序可以访问数据,请查看定义您自己的权限,其他应用程序可以像其他任何Android权限一样请求。

http://developer.android.com/guide/topics/manifest/permission-element.html

答案 1 :(得分:1)

ContentProvider无法直接显示错误消息,但它可以抛出RuntimeException并将您想要的任何消息写入RuntimeException。 RuntimeException将被分配并发送给调用者,无论是谁,都可以由他们来处理代码中的异常。

我不是100%明确你的意思“只有当工作/开始我的申请时”。遗憾的是,ContentProvider没有简单的方法与外界进行通信:您无法绑定到服务,发送意图,获取Application对象等。如果您的ContentProvider在同一进程中运行(因此与DalvikVM相同)您的应用程序然后他们可以通过公共静态字段和方法相互通信,例如:

public class MyApp extends Activity {
    /** True when my app is running, can be accessed by anyone in this process */
    public static boolean myAppIsRunning = false;
}

有关控制ContentProvider进程的信息,请参阅http://developer.android.com/guide/topics/manifest/provider-element.html#proc

祝你好运。

答案 2 :(得分:0)

为什么需要ContentProvider?内容提供商的主要目的是共享数据。如果您想以您提到的方式与您的其他应用共享数据,也许您可​​以使用Androids 远程服务进行数据访问。它与内容提供商的关系不是很好,但我对您的用例没有其他想法。