Loading core/java/android/backup/BackupManager.java +37 −12 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.backup; import android.content.Context; import android.os.RemoteException; import android.os.ServiceManager; import android.util.Log; /** * BackupManager is the interface to the system's backup service. Loading @@ -39,14 +40,17 @@ import android.os.ServiceManager; * @hide pending API solidification */ public class BackupManager { private static final String TAG = "BackupManager"; private Context mContext; private IBackupManager mService; private static IBackupManager sService; /** * Defined backup transports understood by {@link IBackupManager.selectBackupTransport}. */ public static final int TRANSPORT_LOCAL = 1; public static final int TRANSPORT_GOOGLE = 2; private static void checkServiceBinder() { if (sService == null) { sService = IBackupManager.Stub.asInterface( ServiceManager.getService(Context.BACKUP_SERVICE)); } } /** * Constructs a BackupManager object through which the application can Loading @@ -58,8 +62,6 @@ public class BackupManager { */ public BackupManager(Context context) { mContext = context; mService = IBackupManager.Stub.asInterface( ServiceManager.getService(Context.BACKUP_SERVICE)); } /** Loading @@ -68,10 +70,31 @@ public class BackupManager { * {@link android.app.BackupAgent} subclass will be scheduled when you call this method. */ public void dataChanged() { if (mService != null) { checkServiceBinder(); if (sService != null) { try { sService.dataChanged(mContext.getPackageName()); } catch (RemoteException e) { Log.d(TAG, "dataChanged() couldn't connect"); } } } /** * Convenience method for callers who need to indicate that some other package * needs a backup pass. This can be relevant in the case of groups of packages * that share a uid, for example. * * This method requires that the application hold the "android.permission.BACKUP" * permission if the package named in the argument is not the caller's own. */ public static void dataChanged(String packageName) { checkServiceBinder(); if (sService != null) { try { mService.dataChanged(mContext.getPackageName()); sService.dataChanged(packageName); } catch (RemoteException e) { Log.d(TAG, "dataChanged(pkg) couldn't connect"); } } } Loading @@ -85,10 +108,12 @@ public class BackupManager { */ public IRestoreSession beginRestoreSession(String transport) { IRestoreSession binder = null; if (mService != null) { checkServiceBinder(); if (sService != null) { try { binder = mService.beginRestoreSession(transport); binder = sService.beginRestoreSession(transport); } catch (RemoteException e) { Log.d(TAG, "beginRestoreSession() couldn't connect"); } } return binder; Loading tests/backup/src/com/android/backuptest/BackupTestActivity.java +6 −8 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ public class BackupTestActivity extends ListActivity static final String PREF_KEY = "pref"; static final String FILE_NAME = "file.txt"; BackupManager sBm = new BackupManager(this); Test[] mTests = new Test[] { new Test("Show File") { void run() { Loading Loading @@ -85,8 +87,7 @@ public class BackupTestActivity extends ListActivity output.close(); } } BackupManager bm = new BackupManager(BackupTestActivity.this); bm.dataChanged(); sBm.dataChanged(); } }, new Test("Clear File") { Loading @@ -100,14 +101,12 @@ public class BackupTestActivity extends ListActivity output.close(); } } BackupManager bm = new BackupManager(BackupTestActivity.this); bm.dataChanged(); sBm.dataChanged(); } }, new Test("Poke") { void run() { BackupManager bm = new BackupManager(BackupTestActivity.this); bm.dataChanged(); sBm.dataChanged(); } }, new Test("Show Shared Pref") { Loading @@ -126,8 +125,7 @@ public class BackupTestActivity extends ListActivity SharedPreferences.Editor editor = prefs.edit(); editor.putInt(PREF_KEY, val+1); editor.commit(); BackupManager bm = new BackupManager(BackupTestActivity.this); bm.dataChanged(); sBm.dataChanged(); } }, new Test("Backup Helpers") { Loading Loading
core/java/android/backup/BackupManager.java +37 −12 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.backup; import android.content.Context; import android.os.RemoteException; import android.os.ServiceManager; import android.util.Log; /** * BackupManager is the interface to the system's backup service. Loading @@ -39,14 +40,17 @@ import android.os.ServiceManager; * @hide pending API solidification */ public class BackupManager { private static final String TAG = "BackupManager"; private Context mContext; private IBackupManager mService; private static IBackupManager sService; /** * Defined backup transports understood by {@link IBackupManager.selectBackupTransport}. */ public static final int TRANSPORT_LOCAL = 1; public static final int TRANSPORT_GOOGLE = 2; private static void checkServiceBinder() { if (sService == null) { sService = IBackupManager.Stub.asInterface( ServiceManager.getService(Context.BACKUP_SERVICE)); } } /** * Constructs a BackupManager object through which the application can Loading @@ -58,8 +62,6 @@ public class BackupManager { */ public BackupManager(Context context) { mContext = context; mService = IBackupManager.Stub.asInterface( ServiceManager.getService(Context.BACKUP_SERVICE)); } /** Loading @@ -68,10 +70,31 @@ public class BackupManager { * {@link android.app.BackupAgent} subclass will be scheduled when you call this method. */ public void dataChanged() { if (mService != null) { checkServiceBinder(); if (sService != null) { try { sService.dataChanged(mContext.getPackageName()); } catch (RemoteException e) { Log.d(TAG, "dataChanged() couldn't connect"); } } } /** * Convenience method for callers who need to indicate that some other package * needs a backup pass. This can be relevant in the case of groups of packages * that share a uid, for example. * * This method requires that the application hold the "android.permission.BACKUP" * permission if the package named in the argument is not the caller's own. */ public static void dataChanged(String packageName) { checkServiceBinder(); if (sService != null) { try { mService.dataChanged(mContext.getPackageName()); sService.dataChanged(packageName); } catch (RemoteException e) { Log.d(TAG, "dataChanged(pkg) couldn't connect"); } } } Loading @@ -85,10 +108,12 @@ public class BackupManager { */ public IRestoreSession beginRestoreSession(String transport) { IRestoreSession binder = null; if (mService != null) { checkServiceBinder(); if (sService != null) { try { binder = mService.beginRestoreSession(transport); binder = sService.beginRestoreSession(transport); } catch (RemoteException e) { Log.d(TAG, "beginRestoreSession() couldn't connect"); } } return binder; Loading
tests/backup/src/com/android/backuptest/BackupTestActivity.java +6 −8 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ public class BackupTestActivity extends ListActivity static final String PREF_KEY = "pref"; static final String FILE_NAME = "file.txt"; BackupManager sBm = new BackupManager(this); Test[] mTests = new Test[] { new Test("Show File") { void run() { Loading Loading @@ -85,8 +87,7 @@ public class BackupTestActivity extends ListActivity output.close(); } } BackupManager bm = new BackupManager(BackupTestActivity.this); bm.dataChanged(); sBm.dataChanged(); } }, new Test("Clear File") { Loading @@ -100,14 +101,12 @@ public class BackupTestActivity extends ListActivity output.close(); } } BackupManager bm = new BackupManager(BackupTestActivity.this); bm.dataChanged(); sBm.dataChanged(); } }, new Test("Poke") { void run() { BackupManager bm = new BackupManager(BackupTestActivity.this); bm.dataChanged(); sBm.dataChanged(); } }, new Test("Show Shared Pref") { Loading @@ -126,8 +125,7 @@ public class BackupTestActivity extends ListActivity SharedPreferences.Editor editor = prefs.edit(); editor.putInt(PREF_KEY, val+1); editor.commit(); BackupManager bm = new BackupManager(BackupTestActivity.this); bm.dataChanged(); sBm.dataChanged(); } }, new Test("Backup Helpers") { Loading