【问题标题】:Can you access the raws of an inactive app?您可以访问非活动应用程序的原始数据吗?
【发布时间】:2014-05-29 20:19:19
【问题描述】:

我的计划是创建一个使用来自不同应用程序的原始文件的主应用程序。主应用程序将处理所有数据,而另一个应用程序充当一种 DLC。当另一个应用程序运行时,它将使用自己的 SharedPreferences 打开主应用程序,并对其进行设置,以便主应用程序可以从另一个应用程序读取原始数据。

如果另一个应用程序以某种方式被强制关闭,是否可以读取原始数据(不是 SharedPreferences 的实现)?

【问题讨论】:

    标签: android sharedpreferences


    【解决方案1】:

    是的,我相信您应该能够通过PackageManagerResources API 来做到这一点。我已经使用字符串和可绘制对象完成了此操作,因此我不知道它不适用于原始资源的任何特定原因。

    try {
        Resources res = getPackageManager().getResourcesForApplication("other.package.name");
        int resourceId = res.getIdentifier("name_of_raw_resource", "raw", "other.package.name");
        if (resourceId != 0) {
            InputStream rawFile = res.openRawResource(resourceId);
        } else {
            // Raw resource was not found
        }
    } catch (PackageManager.NameNotFoundException e) {
        // App is not installed
    }
    

    【讨论】:

    • 是否也可以调用正在运行的不同应用程序的方法,前提是它们共享相同的 UID 和密钥?
    • 我相信您可以使用导出的服务/广播接收器做到这一点,但这超出了我的舒适范围。 :)
    • 抱歉,我刚刚找到answer!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多