gradle 在Android 11中的两个应用之间共享数据

dwbf0jvd  于 2023-04-06  发布在  Android
关注(0)|答案(1)|浏览(198)

我们有两个应用程序.第一个是创建一些音频文件,并保存在内部存储(根据Android共享存储11).第一个应用程序是创建一个音频文件,并共享音频文件路径到我们的第二个应用程序和第二个应用程序访问该音频文件使用文件路径,并将其上传到服务器.
我们使用contentProvider将filePath共享到第二个应用程序。
我们的第一个应用程序能够在内部(共享)存储中创建音频文件,因为它的目标SDK版本仍然是26。
但我们已经改变了我们的第二个应用程序的目标SDK版本为30(Android 11),由于Android 11的限制,我们的第二个应用程序是无法从内部访问这些音频文件(共享存储)使用由第一个应用程序提供的文件路径.权限拒绝异常来,如果我试图访问这些文件.
这些音频文件保存在***'my_recrodings'***文件夹中。该文件夹由共享存储中的第一个应用程序创建。
完整路径= /storage/emulated/0/.my_recrodings/
请帮助我。我如何才能访问这些文件?

qzlgjiam

qzlgjiam1#

它不是存储,但您可以使用AIDL的服务在应用程序之间进行通信:
Android接口定义语言(AIDL)与其他IDL类似:它允许您定义客户端和服务都同意的编程接口,以便使用进程间通信(IPC)相互通信。
https://developer.android.com/guide/components/aidl
您可能还需要为Android 11定义一个查询(API级别30)

<manifest package="com.example.game">
  <queries>
    <!-- Specific apps you interact with, eg: -->
    <package android:name="com.example.service" />
  </queries>
  ...
</manifest>

相关问题