sharedUserId
可以提供对data / data / com.example / files目录中文件的访问吗?
我尝试这样做,我可以检索上下文并检查此目录是否存在,尽管当我尝试从中读取文件时,调试器给了我PERMISSION DENIED错误。SharedUserId
文档中的They say提供了对数据的共享访问,甚至可以在同一进程中运行两个应用程序,有关它们所说的数据是什么?可能是此功能仅提供对应用程序“静态”资源的访问,而不是对动态创建的资源的访问吗?
UPD
fw_context = createPackageContext("com.example", Context.CONTEXT_IGNORE_SECURITY);
String[] str = fw_context.getFilesDir.list();//str=null
正如我所评论的,这里的
str
是null
,我不知道为什么它是null
,但是我知道此目录中有一些文件(我已经扎好了手机,所以我可以看到它) 最佳答案
sharedUserId可以提供对data / data / com.example / files目录中文件的访问吗?
是,仅当且仅当:
两个应用程序具有相同的非空sharedUserId
值
两个应用程序始终具有相同的非空sharedUserID
值(即,您无法将应用程序从不具有sharedUserId
更新为具有sharedUserId
)
两个应用程序都使用相同的签名密钥签名
话虽这么说,sharedUserId
几乎永远不是正确的答案,原因很简单,两个应用程序都不知道另一个应用程序正在处理文件。使用ContentProvider
(或某些其他形式的IPC)在应用之间共享内容,使用signature
级别的权限或其他身份检查来确保只有正确的应用才能通过IPC通道进行交互。
关于android - SharedUserId和文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32618081/