私の解決策は、無料アプリでシンプルなコンテンツプロバイダーを使用してデータを公開し、セキュリティホールを回避するために完全なアプリとパスワードを共有することです。
無料アプリ:AndroidManifest.xml
<provider android:name="MY_PACKAGE.PrefProvider" android:authorities="MY_PACKAGE.prefprovider" />
無料アプリ:PrefProvider.java
public class PrefProvider extends ContentProvider {
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
if (! selection.equals(MY_SECRET)) {
return null; //Wrong shared secret
}
MatrixCursor prefs = new MatrixCursor(new String[] {"field1", "field2", "field3"});
MatrixCursor.RowBuilder rb = prefs.newRow();
rb.add(settings.getString("field1", ""));
rb.add(settings.getString("field2", ""));
rb.add(settings.getString("field3", ""));
return prefs;
}
}
有料アプリ:主なアクティビティ
if (isFirstTime) {
// Is the first time that the full version is being launched
Cursor cursor = act.getContentResolver().query(Uri.parse("content://MY_PACKAGE.prefprovider"), null, providerKey, null, null);
if (cursor != null && cursor.moveToFirst() != false) { // non empty cursor, the free app is installed
field1 = cursor.getString(0);
field2 = cursor.getString(1);
field3 = cursor.getString(2);
cursor.close();
}
}