6

से जीसीएम पंजीकरण आईडी बहिष्कृत करें मेरे पास एक ऐप है जो पुश अधिसूचनाएं भेजने के लिए Azure का उपयोग करता है। बदले में Azure, एंड्रॉइड डिवाइस को भेजने के लिए जीसीएम का उपयोग करता है।एंड्रॉइड 23+ - बैकअप

मैं देख रहा हूँ कि मैं अपने AndroidManifest.xml में चेतावनी

बताते हुए SDK संस्करण 23 और ऊपर पर है, अपने अनुप्रयोग डेटा स्वचालित रूप से को सुरक्षित कर लिया, और ऐप्लिकेशन पर बहाल स्थापित किया जाएगा। आपका जीसीएम रेजीड रीस्टोर पर काम नहीं करेगा, इसलिए आपको यह सुनिश्चित करना होगा कि इसे बैक-अप सेट से बाहर रखा गया हो। विशेषता एंड्रॉइड का उपयोग करें: fullbackupContent एक @xml संसाधन निर्दिष्ट करने के लिए जो फ़ाइलों को बैकअप के लिए कॉन्फ़िगर करता है।

मैं यहां दिए गए निर्देशों https://developer.android.com/training/backup/autosyncapi.html?hl=in#configuring

लेकिन मैं कैसे बैकअप से GCM Regid को बाहर करने के लिए के रूप में स्टम्प्ड हूँ निम्नलिखित है? मेरा वर्तमान सेटअप यहाँ है।

प्रकट

<application 
     android:allowBackup="true" 
     android:fullBackupContent="@xml/backup_scheme" 
     ........ 

रेस/xml/backup_scheme.xml

<?xml version="1.0" encoding="utf-8"?> 
<full-backup-content> 
    <exclude domain="sharedpref" path=""/> 
</full-backup-content> 

क्या मैं पथ के रूप में रख सकता हूं? क्या मुझे कहीं भी एक भौतिक फ़ाइल चाहिए जिसे मैंने बाहर रखा है?

अद्यतन

तो मुझे लगता है कि मैं यह समझ से बाहर। मेरी पंजीकरण IntentService.java फ़ाइल में, मैं "पंजीकरण आईडी" स्ट्रिंग के तहत साझा प्राथमिकताओं में उपयोगकर्ता पंजीकरण आईडी संग्रहीत करता हूं। तो मुझे लगता है कि मैं निम्नलिखित का उपयोग करता हूं ...

<exclude domain="sharedpref" path="registrationID"/> 

सही?

+0

[डेटा को शामिल या छोड़कर] (https://developer.android.com/training/backup/autosyncapi.html#auto-exclude) दस्तावेज़ और आपके द्वारा प्रदान की गई जानकारी की जांच के तहत, इसे बैकअप में पंजीकरण आईडी को बाहर करना चाहिए। आपको इसे आजमाएं और यदि यह काम करता है, तो इसे समुदाय के लाभ के उत्तर के रूप में पोस्ट करें। –

उत्तर

4

तो मैंने इसे समझ लिया। मेरी पंजीकरण IntentService.java फ़ाइल में, मैं "पंजीकरण आईडी" स्ट्रिंग के तहत साझा प्राथमिकताओं में उपयोगकर्ता पंजीकरण आईडी संग्रहीत करता हूं। तो backup_scheme.xml फ़ाइल में निम्नलिखित का उपयोग करें ...

<exclude domain="sharedpref" path="registrationID"/> 
+0

पथ तत्व संपूर्ण .xml फ़ाइल होना चाहिए, उदाहरण: < डोमेन = "sharedpref" पथ = "उपयोगकर्ता-प्राथमिकता.एक्सएमएल" /> – frapeti

2

मैं एक ही मुद्दे का सामना करना पड़ा है और मैं इसका जवाब को स्वीकार करने का पालन करने के लिए जा रहा था, लेकिन पता चला है कि यह क्या किया जाना चाहिए नहीं है लगता है।

मैंने क्या किया है कि मैंने backup_scheme.xml फ़ाइल बनाने से पहले मेरे मैनिफेस्ट में पूर्ण बैकअप सामग्री प्रॉपर्टी सेट की है। तो निश्चित रूप से, एंड्रॉइड स्टूडियो ने चेतावनी के साथ शिकायत की लेकिन मुझे उस फाइल को स्वचालित रूप से उत्पन्न करने के लिए एक त्वरितफिक्स प्रदान किया।

QuickFix लागू करना निम्न फ़ाइल उत्पन्न:

<?xml version="1.0" encoding="utf-8"?> 
<full-backup-content> 
    <!-- Remove the following "exclude" elements to make them a part of the auto backup --> 
    <exclude 
     domain="database" 
     path="attendee.db" /> 
    <exclude 
     domain="database" 
     path="whova_messages.db" /> 
    <exclude 
     domain="database" 
     path="photo.db" /> 
    <exclude 
     domain="database" 
     path="agenda.db" /> 
    <exclude 
     domain="database" 
     path="ebb.db" /> 
    <exclude 
     domain="database" 
     path="vertical.db" /> 
    <exclude 
     domain="database" 
     path="whova.db" /> 
    <!-- Exclude the shared preferences file that contains the GCM registrationId --> 
    <exclude 
     domain="sharedpref" 
     path="WhovaMessagePrefFile.xml" /> 
    <exclude 
     domain="sharedpref" 
     path="APP_RATER.xml" /> 
    <exclude 
     domain="sharedpref" 
     path="WhovaPrefFile.xml" /> 
</full-backup-content> 

नोट <!-- Exclude the shared preferences file that contains the GCM registrationId -->

तो मेरा अनुमान है कि आप GCM आईडी वाले संपूर्ण साझा पसंद फ़ाइल निकालने की ज़रूरत है, और न सिर्फ महत्वपूर्ण यह है कि है ।

बहुत खराब दस्तावेज इसे स्पष्ट नहीं करता है और यह भी बुरा है कि हमें बैकअप से बाहर और पूरी फ़ाइल को बाहर करना होगा।

संबंधित मुद्दे