sharedUserId
可以提供对data / data / com.example / files目录中文件的访问权限吗?
我试图这样做,我可以检索上下文并检查这个目录是否存在,但是当我尝试从中读取文件时,debuger给了我PERMISSION DENIED错误。
文档中的{p> They saySharedUserId
提供了对数据的共享访问权限,甚至可以在同一进程中运行两个应用程序,他们所说的内容的数据是什么?难道这个功能只能访问应用程序的“静态”资源,而不能动态创建那些资源吗?
UPD
fw_context = createPackageContext("com.example", Context.CONTEXT_IGNORE_SECURITY);
String[] str = fw_context.getFilesDir.list();//str=null
正如我所评论的那样,str
这里是null
,我不知道为什么它是null
,但我知道这个目录中有一些文件(我扎根了)电话,所以我可以看到这个)
答案 0 :(得分:3)
sharedUserId可以提供对data / data / com.example / files目录中文件的访问吗?
是的,当且仅当:
两个应用都具有相同的非空sharedUserId
值
两个应用都始终具有相同的非空sharedUserID
值(即,您无法将应用从没有sharedUserId
更新为sharedUserId
1}})
这两个应用都使用相同的签名密钥进行签名
话虽如此,sharedUserId
几乎从来都不是正确答案,原因很简单,因为这两个应用都不会知道其他应用对文件做了什么。使用ContentProvider
(或其他形式的IPC)在应用之间共享内容,使用signature
级权限或其他身份检查,以确保只有正确的应用才能通过IPC渠道进行交互。