不能使用的备份与Android备份服务
我想备份服务与我的应用程序集成。这是所有工作说得最多的时刻,我打这个电话给:不能使用的备份与Android备份服务
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
试图备份时,我已经注意到了。所以我的猜测是错误与无法找到我的备份代理有关。
所以我的问题是没有把属性到正确的元素:(
我:
<manifest android:backupAgent="com.cloakedninjas.cordova.plugins.BackupAgentHelper" ...
相反的:
<application android:backupAgent="com.cloakedninjas.cordova.plugins.BackupAgentHelper"
...
一对夫妇的建议:
在您的清单,我想备份代理的声明应该既可以使用全名或“点”简称:
android:backupAgent="com.example.project.CordovaBackupAgentHelper"
或
android:backupAgent=".CordovaBackupAgentHelper"
此外,您必须在清单中启用备份:
android:allowBackup="true"
说了这么多,我怀疑这些变化做出警告消息消失。我有一个备份代理,并且无法通过将这些声明更改为无效值来创建您看到的警告消息。
如果您使用的是谷歌备份传输如Data Backup Guide描述,并添加关键看你的表现,你有没有注册为服务?
您是否尝试过使用adb bmgr
工具,看看你的经纪人会被调用,尽管警告消息来触发备份操作?
所以,是的,尝试了全名'android:backupAgent =“com.cloakedninjas.cordova.plugins.CordovaBackupAgentHelper”',并添加了'android:allowBackup' att ribute。按照指定的清单中的按键,触发'adb shell bmgr run'几次。但是,谢谢:) – cloakedninjas
只是想知道,该应用程序需要发布工作?尚未上传至Google Play – cloakedninjas
此外,如果您将API密钥更改为不正确的内容,是否会产生任何警告? – cloakedninjas