バックアップサービスをアプリに統合しようとしています。すべての機能は、次の呼び出しを行うまで有効です。
BackupManager bm = new BackupManager(context);
bm.dataChanged();
Logcatに以下が表示されます。
W/BackupManagerService﹕ dataChanged but no participant pkg="com.company.app" uid=10102
ここに」の私の実装です BackupAgentHelper
https://gist.github.com/cloakedninjas/fe135cb04bf324e26b0c それが役立つ場合...
public class CordovaBackupAgentHelper extends BackupAgentHelper {
static final String FILE_NAME = "gameData.json";
static final String FILES_BACKUP_KEY = "data_file";
@Override
public void onCreate() {
FileBackupHelper helper = new FileBackupHelper(this, FILE_NAME);
addHelper(FILES_BACKUP_KEY, helper);
}
@Override
public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
ParcelFileDescriptor newState) throws IOException {
Log.d(Backup.LOG_TAG, "Backup requested: " + oldState.toString() + " | " + newState.toString());
synchronized (Backup.sDataLock) {
Log.d(Backup.LOG_TAG, "Backup requested: " + data.toString());
super.onBackup(oldState, data, newState);
}
}
@Override
public void onRestore(BackupDataInput data, int appVersionCode,
ParcelFileDescriptor newState) throws IOException {
synchronized (Backup.sDataLock) {
Log.d(Backup.LOG_TAG, "Restore given: " + data.toString());
super.onRestore(data, appVersionCode, newState);
}
}
}
ログエントリが表示されない Backup requested
。 Androidマニフェストに次の属性があることを確認しました android:backupAgent="CordovaBackupAgentHelper"
誰もがこれに光を当てることはできますか?
更新
マニフェストを変更すると気づいた android:backupAgent="FooBar"
未宣言のクラスFooBarに関するエラーは表示されませんが、まだ表示されます dataChanged but no participant pkg
バックアップを試みるとき。私の推測では、このエラーはバックアップエージェントが見つからないことに関係していると思います。
回答:
回答№1は0いくつかの提案:
あなたのマニフェストでは、バックアップエージェントの宣言はフルネームか「ドット」の短い形式を使用するべきだと思います:
android:backupAgent="com.example.project.CordovaBackupAgentHelper"
または
android:backupAgent=".CordovaBackupAgentHelper"
また、マニフェストでバックアップを有効にする必要があります。
android:allowBackup="true"
そうは言っても、makeでこれらの変更を疑う警告メッセージは消えます。バックアップエージェントがありますが、これらの宣言を無効な値に変更すると、表示される警告メッセージを作成できません。
Googleバックアップトランスポートを使用している場合は、に記載されているようにサービスに登録してください データバックアップガイド マニフェストにキーを追加しましたか?
を使用してバックアップ操作をトリガーしようとしましたか adb bmgr
警告メッセージにもかかわらずエージェントが呼び出されるかどうかを確認するツール
回答№2の場合は0
だから私の問題は属性を正しい要素に入れていなかった:(
私は持っていた:
<manifest android:backupAgent="com.cloakedninjas.cordova.plugins.BackupAgentHelper" ...
の代わりに:
<application android:backupAgent="com.cloakedninjas.cordova.plugins.BackupAgentHelper"
...