6

Tôi có một ứng dụng sử dụng Azure để gửi thông báo Đẩy. Azure lần lượt, sử dụng GCM để gửi đến các thiết bị Android.Android 23+ - Loại trừ ID đăng ký GCM khỏi bản sao lưu

Tôi nhận thấy rằng tôi có một cảnh báo trong AndroidManifest.xml của tôi nêu

On SDK phiên bản 23 trở lên, dữ liệu ứng dụng của bạn sẽ được tự động sao lưu lên, và phục hồi trên ứng dụng cài đặt. Việc kiểm tra GCM của bạn sẽ không hoạt động trên khôi phục, vì vậy bạn phải đảm bảo rằng nó bị loại trừ khỏi tập sao lưu. Sử dụng thuộc tính android: fullBackupContent để chỉ định một tài nguyên @xml định cấu hình các tệp cần sao lưu.

Tôi đã làm theo hướng dẫn tại đây https://developer.android.com/training/backup/autosyncapi.html?hl=in#configuring

tuy nhiên tôi đang bối rối như thế nào để loại trừ GCM regID từ bản sao lưu? Đây là thiết lập hiện tại của tôi.

Manifest

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

res/xml/backup_scheme.xml

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

nào để tôi đặt gì như đường dẫn? Tôi có phải có một tập tin vật lý một nơi nào đó tôi loại trừ?

CẬP NHẬT

Vì vậy, tôi nghĩ rằng tôi figured it out. Trong tệp RegistrationIntentService.java của mình, tôi lưu trữ người dùng registrationID trong các tùy chọn được chia sẻ theo chuỗi "registrationID". Vì vậy, tôi giả sử tôi sử dụng các mục sau ...

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

phải không?

+0

Trong tài liệu [Bao gồm hoặc loại trừ dữ liệu] (https://developer.android.com/training/backup/autosyncapi.html#auto-exclude) và kiểm tra thông tin bạn đã cung cấp, nó sẽ loại trừ đăng kýID trong bản sao lưu. Bạn nên thử nó và nếu nó hoạt động, hãy đăng nó như một câu trả lời vì lợi ích của cộng đồng. –

Trả lời

4

Vì vậy, tôi đã tìm ra. Trong tệp RegistrationIntentService.java của mình, tôi lưu trữ người dùng registrationID trong các tùy chọn được chia sẻ theo chuỗi "registrationID". Vì vậy, hãy sử dụng thông tin sau trong tệp backup_scheme.xml ...

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

phần tử đường dẫn phải là toàn bộ tệp .xml, ví dụ: frapeti

2

Tôi gặp vấn đề tương tự và tôi sẽ theo dõi chấp nhận câu trả lời, nhưng có vẻ như không phải là việc nên làm.

Điều tôi đã làm là tôi thiết lập đầy đủBackupContentProperty trong tệp kê khai của mình trước khi tạo tệp backup_scheme.xml. Vì vậy, tất nhiên, Android Studio phàn nàn với một cảnh báo nhưng cung cấp cho tôi một quickfix để tự động tạo ra tập tin đó.

Áp dụng QuickFix tạo ra các tập tin sau đây:

<?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> 

Lưu ý <!-- Exclude the shared preferences file that contains the GCM registrationId -->

Vì vậy, tôi đoán là bạn phải loại trừ toàn bộ tập tin Sở thích chung chứa ID GCM, và không chỉ là chìa khóa .

Quá xấu tài liệu không làm cho tài liệu siêu rõ ràng và cũng quá tệ, chúng tôi phải loại trừ và toàn bộ tệp khỏi bản sao lưu.

Các vấn đề liên quan