/ / Androidバックアップサービスでバックアップを使用できません-java、android、android-backup-service

Android Backup Serviceでバックアップできません - java、android、android-backup-service

バックアップサービスをアプリに統合しようとしています。すべての機能は、次の呼び出しを行うまで有効です。

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" ...