Java 我可以为不同的软件包向Android SharedReference写信吗?

Java 我可以为不同的软件包向Android SharedReference写信吗?,java,android,sharedpreferences,Java,Android,Sharedpreferences,我已经写了一个游戏,我打算上传到市场作为一个免费的演示,我打算提供一个完整的版本为一美元 我想让完整版本的下载只是一个简单的解锁器,它为演示将一个值写入SharedReferences 当演示程序启动时,它会读取其共享的pref,如果该值存在,则它将以完全模式运行,否则它将以演示模式运行 这样做的原因是A)这样,当人们购买完整版本时,下载几乎是即时的,而不必等待整个应用程序再次下载;B)这样,每当我更改应用程序的代码时,我就不必更新两个市场列表 那么,是否可以为与当前运行的包分离的包更改Shar

我已经写了一个游戏,我打算上传到市场作为一个免费的演示,我打算提供一个完整的版本为一美元

我想让完整版本的下载只是一个简单的解锁器,它为演示将一个值写入SharedReferences

当演示程序启动时,它会读取其共享的pref,如果该值存在,则它将以完全模式运行,否则它将以演示模式运行

这样做的原因是A)这样,当人们购买完整版本时,下载几乎是即时的,而不必等待整个应用程序再次下载;B)这样,每当我更改应用程序的代码时,我就不必更新两个市场列表


那么,是否可以为与当前运行的包分离的包更改SharedPrefers?

应用程序的Android SharedPreference有4种模式

  • 是应用程序使用最多且唯一的内部版本

  • 如果您希望您的首选项为 由另一个应用程序读取

  • 已弃用API 17及以后版本

  • 可由多个进程修改

当应用程序想要编写首选项时,它由

因此,可以读取首选项。但要编写首选项,特定的应用程序应该使用已弃用的
MODE\u WORLD\u WRITEABLE

道德:您不能更改其他应用程序的首选项


你真的不应该这样做

这可能是一个值得阅读的参考,但这个问题有一个不同的最终目标。查看sharedUserId,或者可能从游戏中对unlocker中的许可证服务器进行加密挑战响应。嗯,好的,但理论上我可以为unlocker应用程序创建sharedPref条目,不用解锁器来更改演示的共享prefs的值,我只需要让演示程序检查解锁器应用程序是否存在该值,对吗?如果是这样,我会使用SharedReferences prefs=createPackageContext(“com.mydomain.unlockerapp”).GetSharedReferences(“myPrefs”,MODE\u PRIVATE)?你会使用
MODE\u world\u readable
在另一个应用程序中提供你的首选项我不想在unlocker应用程序中使用MODE\u world\u readable吗,在写它的pref时?在主游戏应用程序中,我会不会只使用mode_private?只要它是世界可读的。你想在另一个应用程序中得到它。你可以用任何东西。。世界可读是一种选择。我不确定,但是mode private可能会起作用,因为在unlocker应用程序中托管首选项会起作用,但很容易被同名的伪项欺骗,除非它是加密项。它需要是一个非常量,所以加密的答案不能被复制。看看共享用户ID。