/ / एंड्रॉइड बैकअप सेवा के साथ बैकअप का उपयोग नहीं कर सकते हैं - जावा, एंड्रॉइड, एंड्रॉइड-बैकअप-सेवा

एंड्रॉइड बैकअप सेवा - जावा, एंड्रॉइड, एंड्रॉइड-बैकअप-सेवा के साथ बैकअप का उपयोग नहीं कर सकता

मैं अपने ऐप के साथ बैकअप सेवा को एकीकृत करने की कोशिश कर रहा हूं। यह उस समय तक काम कर रहा है जब मैं इस पर कॉल करता हूं:

BackupManager bm = new BackupManager(context);
bm.dataChanged();

मैं अपने लोगो में निम्नलिखित देखता हूं:

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 बैकअप का प्रयास करते समय। इसलिए मेरा अनुमान है कि त्रुटि मेरे बैकअप एजेंट को खोजने में सक्षम नहीं होने से संबंधित है।

उत्तर:

जवाब के लिए 0 № 1

सुझावों की एक जोड़ी:

आपके घोषणापत्र में, मुझे लगता है कि बैकअप एजेंट की घोषणा को या तो पूर्ण नाम या "डॉट" संक्षिप्त रूप का उपयोग करना चाहिए:

android:backupAgent="com.example.project.CordovaBackupAgentHelper"

या

android:backupAgent=".CordovaBackupAgentHelper"

इसके अलावा, आपके पास अपने मैनिफ़ेस्ट में बैकअप सक्षम होना चाहिए:

android:allowBackup="true"

यह कहने के बाद, मुझे इन बदलावों पर संदेह हैचेतावनी संदेश चला जाता है। मेरे पास एक बैकअप एजेंट है, और आप इन घोषणाओं को अमान्य मानों में बदलकर चेतावनी संदेश बनाने में असमर्थ हैं।

यदि आप Google बैकअप ट्रांसपोर्ट का उपयोग कर रहे हैं, तो क्या आपने इस सेवा के लिए पंजीकरण किया है डेटा बैकअप गाइड और आपके प्रकट होने की कुंजी को जोड़ा?

क्या आपने बैकअप ऑपरेशन को ट्रिगर करने की कोशिश की है? adb bmgr यह देखने के लिए कि क्या आपके एजेंट को चेतावनी संदेश के बावजूद बुलाया जाता है?


जवाब के लिए 0 № 2

तो मेरा मुद्दा सही तत्व पर गुण नहीं डाल रहा था :(

मैंने लिया:

<manifest android:backupAgent="com.cloakedninjas.cordova.plugins.BackupAgentHelper" ...

के बजाय:

<application android:backupAgent="com.cloakedninjas.cordova.plugins.BackupAgentHelper" ...