gpt4 book ai didi

java - ANDROID - 如何保存字符串并从任何应用程序访问它

转载 作者:行者123 更新时间:2023-11-30 00:40:10 24 4
gpt4 key购买 nike

我需要在 Android 设备中存储一个创建的 ID,这个 ID 应该由安装在设备中的我们的几个应用程序中的第一个创建,并且应该被该设备中的任何其他应用程序读取设备。它还需要适用于所有 Android 设备。

我尝试使用内容提供者,但看起来我不能拥有多个具有相同权限的内容提供者,并且为每个内容提供者设置不同的权限来搜索每个应用程序的所有权限并不是一个可行的选择。

我也试过修改用户字典,但是有些安卓版本,尤其是三星的,不允许设置字典或者没有安装默认自带的字典,所以我无法访问它。

所以我的问题是:

我怎样才能拥有一个全局变量,一个字符串,它可以被安装在设备上的任何应用程序创建和读取?有什么办法可以做到这一点?某种全局词典或类似的东西?

最佳答案

最佳方法

ContentProviders我认为如果您正在寻找可遵循的最佳方法。

即使将来要获取更多数据,您也应该使用此选项,这是在应用程序之间共享数据的好方法。

替代方法

App 1(例如:app1 包名称是“com.app1”)。

SharedPreferences prefs = getSharedPreferences("pref1",
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("stringDemo1", strShareValue);
editor.commit();

App2(您可以根据您的要求将它用于其他 30 个应用程序)(从 App 1 的共享首选项中获取数据)。

    try {
con = createPackageContext("com.app1", 0);//first app package name is "com.sharedpref1"
SharedPreferences pref = con.getSharedPreferences(
"pref1", Context.MODE_PRIVATE);
String your_data = pref.getString("stringDemo1", "No Value");
}
catch (NameNotFoundException e) {
Log.e("Not data shared between two applications", e.toString());
}

在 app1 和 app2 最多 30 个 list 文件中添加相同的共享用户 ID 和标签,

 android:sharedUserId="any string" 
android:sharedUserLabel="@string/any_string"

两者相同...并且共享用户标签必须来自 string.xml

为了更好地理解检查下面的示例。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xxxx"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="any string"
android:sharedUserLabel="@string/any_string">

关于java - ANDROID - 如何保存字符串并从任何应用程序访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42673822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com