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

标签 java android global-variables android-contentprovider

我需要在 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/

相关文章:

javascript - 使用短路评估来定义变量

java - 删除另一个 map 中嵌套 map 的值

java - 递归方法 - 标尺刻度线

android - 如何获取可以选中的复选框的数量?

android - 无法解析 Titanium 中的推送有效负载消息

java - char 数组的值不断变化

c++ - 如何将全局常量变量更改为可以通过函数分配的变量

java - 我的正则表达式导致 Java 中的堆栈溢出;我错过了什么?

java - OneToMany 双向关联示例

android - ionic 构建安卓 Nodejs