デバイス所有者アプリに問題がありました。Android 5.1 より前は問題なく動作していましたが、Android 5.1 への更新後、デバイス所有者アプリをインストールするとバックアップ サービスが無効になります。
デバイス設定で、[バックアップとリセット] オプションに入ると、バックアップ サービスがグレー表示され、次のように表示されます:バックアップ サービスは非アクティブです。これはデバイス ポリシーによって設定されます
このソースはGoogle gitリポジトリで見つけることができました...コードはそれほど長くなく、理解しやすいものではありません.android.app.backup.IBackupManagerを使用してサービスを無効にしています...しかし、コミットコメントの方が簡単です:
デバイス所有者が設定されている場合、バックアップ マネージャ サービスをシャットダウンする
彼らがしていることは次のとおりです。
import android.app.backup.IBackupManager;
// Shutting down backup manager service permanently.
long ident = Binder.clearCallingIdentity();
try {
IBackupManager ibm = IBackupManager.Stub.asInterface(
ServiceManager.getService(Context.BACKUP_SERVICE));
ibm.setBackupServiceActive(UserHandle.USER_OWNER, false);
} catch (RemoteException e) {
throw new IllegalStateException("Failed deactivating backup service.", e);
} finally {
Binder.restoreCallingIdentity(ident);
}
うわー...これは私のプロジェクトに重大な欠陥をもたらします! 冗談ではありません: デバイス所有者のアプリがインストールされている間、ユーザーが自分のデータをバックアップすることは本当に不可能ですか?
それで、うまくいけば、ここの誰かがこれについて共有する情報や経験を持っているでしょうか? 悲しいことに、私はこれに慣れていませんが、おそらくリフレクションでこれを後で修正できますか?
読んでくれてありがとう!