我有 2 个具有不同包名称的应用程序。例如 App1 和 App2。
App1 需要将一些文件写入 App2 的内存,以便上传到后端。
我在 App1 中使用了以下内容:
filePath = getPackageManager().getPackageInfo("app2.package.name", 0).applicationInfo.dataDir;
我可以获得正确的路径,但无法写入。我检查了logcat,它显示“权限被拒绝”。
我错过了什么吗?还需要做什么?
我有 2 个具有不同包名称的应用程序。例如 App1 和 App2。
App1 需要将一些文件写入 App2 的内存,以便上传到后端。
我在 App1 中使用了以下内容:
filePath = getPackageManager().getPackageInfo("app2.package.name", 0).applicationInfo.dataDir;
我可以获得正确的路径,但无法写入。我检查了logcat,它显示“权限被拒绝”。
我错过了什么吗?还需要做什么?
我在 Android 清单中使用了 android:sharedUserId,现在可以跨应用程序的内部存储器进行写入。
由于我唯一的目的是编写文本文件(不涉及共享等),我发现这是最容易实现的。
您不能直接访问其他应用程序的内部存储器。只有在您的设备上具有 root 访问权限,您才能这样做。
但是为什么你的应用程序要写入另一个应用程序的内存呢?如果您必须在 2 个应用程序之间进行一些通信,还有其他方法可以做到这一点。即使用服务、内容提供商或广播意图并通过您的其他应用程序接收它。