6

Azure를 사용하여 푸시 알림을 보내는 앱이 있습니다. Azure는 GCM을 사용하여 Android 기기에 전송합니다.Android 23 이상 - GCM 등록 ID를 백업에서 제외합니다.

내가 SDK 버전 23까지에

을 알리는 제의 AndroidManifest.xml에 경고가 있는지에 주목하고있어, 앱 데이터가 자동으로 설치 백업 및 응용 프로그램에 복원됩니다. 귀하의 GCM regid는 복원에서 작동하지 않으므로 백업 세트에서 제외되어야합니다. android : fullBackupContent 속성을 사용하여 백업 할 파일을 구성하는 @xml 리소스를 지정합니다.

여기 그러나 나는 백업에서 GCM REGID을 제외하는 방법으로 난처한 상황에 빠진 https://developer.android.com/training/backup/autosyncapi.html?hl=in#configuring

를 지침에 따라 한? 여기에 현재 설정이 있습니다.

매니페스트

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

? 내가 제외시킨 실제 파일이 있어야 하나?

UPDATE 그래서 나는 그것을 알아 냈다고 생각합니다. 내 RegistrationIntentService.java 파일에서 공유 등록 정보에 "registrationID"문자열의 사용자 registrationID를 저장합니다. 그래서 저는 다음을 사용한다고 가정합니다 ...

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

오른쪽?

+0

[데이터 포함 또는 제외] (https://developer.android.com/training/backup/autosyncapi.html#auto-exclude) 문서에서 제공 한 정보를 확인하면 백업의 registrationID가 제외되어야합니다. 시도해보아야하고 작동한다면 커뮤니티의 이익을위한 답으로 게시하십시오. –

답변

4

그래서 알아 냈습니다. 내 RegistrationIntentService.java 파일에서 공유 등록 정보에 "registrationID"문자열의 사용자 registrationID를 저장합니다. 그래서 ... backup_scheme.xml 파일에

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

path 요소는 .xml 파일 전체 여야합니다 (예 : ) frapeti

2

를 다음을 사용 나는 같은 문제에 직면하고 나는 대답을 받아들이 따라 가고 있었다, 그러나 밝혀 수행해야 것이 아니다 보인다.

내가 한 것은 backup_scheme.xml 파일을 만들기 전에 내 매니페스트에 fullBackupContentProperty를 설정했기 때문입니다. 물론 Android Studio는 경고 메시지를 표시했지만 자동으로 해당 파일을 생성하는 quickfix를 제공했습니다. 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 ID를 포함하는 전체 공유 환경 설정 파일을 제외해야하고, 단지의 핵심이다 .

설명서가 너무 좋지 않아서 너무 명확하지 않으며 백업에서 전체 파일을 제외해야한다는 것이 너무 나쁩니다.