Android 共享首选项内容提供程序
我在Android应用程序中使用共享首选项来存储一些数据。我希望此数据可用于其他应用程序,但仅限于我制作的应用程序 (我知道,无论我做什么,任何人只要在手机上设置了根目录,都可以使用这些数据) 经过广泛的搜索,我找到了两种可能的方法Android 共享首选项内容提供程序,android,sharedpreferences,android-contentprovider,Android,Sharedpreferences,Android Contentprovider,我在Android应用程序中使用共享首选项来存储一些数据。我希望此数据可用于其他应用程序,但仅限于我制作的应用程序 (我知道,无论我做什么,任何人只要在手机上设置了根目录,都可以使用这些数据) 经过广泛的搜索,我找到了两种可能的方法 将共享优先模式设置为私有。使用shareduserid并使用同一密钥对所有应用程序进行签名。然后使用原始应用程序上下文访问私有共享首选项。 但是非常老,不确定是否仍然可行,因为我无法让它工作 使用内容提供商访问共享首选项。-但是问题是,我找不到一个关于如何使用共享首
所以我已经解决了!如果有人觉得这有用的话,我们开始: 我继续研究选项1(见问题),发现允许应用程序共享资源需要满足两个条件
android:sharedUserLabel="@string/id"
android:sharedUserId="com.example"
我在字符串id中输入了“samsid”-可以是任何东西,只要这两个应用程序的id相同 try {
otherAppsContext = createPackageContext("com.example.samstest", 0);
} catch (NameNotFoundException e) {}
其中“com.example.samstest”是设置共享pref的应用程序。
然后在创建共享首选项对象时使用“otherAppsContext”,以便以通常的方式检索数据。由于sharedUserId已被弃用并将很快被删除,该解决方案是否仍然可以通过使用相同的密钥对应用程序进行签名来工作?或者现在是否有更好的方法来执行相同的操作?