@Override public void binderDied() { listener.asBinder().unlinkToDeath(this, 0); VAppManagerService.this.mAppRequestListener = null; } }, 0);
public void setUiCallback(Intent intent, IUiCallback callback) { if (callback != null) { Bundle bundle = new Bundle(); BundleCompat.putBinder(bundle, "_VA_|_ui_callback_", callback.asBinder()); intent.putExtra("_VA_|_sender_", bundle); } }
public static void removeService(String name) { IServiceFetcher fetcher = getServiceFetcher(); if (fetcher != null) { try { fetcher.removeService(name); } catch (RemoteException e) { e.printStackTrace(); } } }
private static IServiceFetcher getServiceFetcher() { if (sFetcher == null || !sFetcher.asBinder().isBinderAlive()) { synchronized (ServiceManagerNative.class) { Context context = VirtualCore.get().getContext(); Bundle response = new ProviderCall.Builder(context, SERVICE_CP_AUTH).methodName("@").call(); if (response != null) { IBinder binder = BundleCompat.getBinder(response, "_VA_|_binder_"); linkBinderDied(binder); sFetcher = IServiceFetcher.Stub.asInterface(binder); } } } return sFetcher; }
private void notifyAppUninstalled(PackageSetting setting, int userId) { final String pkg = setting.packageName; int N = mRemoteCallbackList.beginBroadcast(); while (N-- > 0) { try { if (userId == -1) { sendUninstalledBroadcast(pkg); mRemoteCallbackList.getBroadcastItem(N).onPackageUninstalled(pkg); mRemoteCallbackList.getBroadcastItem(N).onPackageUninstalledAsUser(0, pkg); } else { mRemoteCallbackList.getBroadcastItem(N).onPackageUninstalledAsUser(userId, pkg); } } catch (RemoteException e) { e.printStackTrace(); } } mRemoteCallbackList.finishBroadcast(); VAccountManagerService.get().refreshAuthenticatorCache(null); }
private void notifyAppInstalled(PackageSetting setting, int userId) { final String pkg = setting.packageName; int N = mRemoteCallbackList.beginBroadcast(); while (N-- > 0) { try { if (userId == -1) { sendInstalledBroadcast(pkg); mRemoteCallbackList.getBroadcastItem(N).onPackageInstalled(pkg); mRemoteCallbackList.getBroadcastItem(N).onPackageInstalledAsUser(0, pkg); } else { mRemoteCallbackList.getBroadcastItem(N).onPackageInstalledAsUser(userId, pkg); } } catch (RemoteException e) { e.printStackTrace(); } } mRemoteCallbackList.finishBroadcast(); VAccountManagerService.get().refreshAuthenticatorCache(null); }
/** * tell the ui that the activity has launched. * @param intent */ private void callUiCallback(Intent intent, boolean success) { IUiCallback callback = VirtualCore.getUiCallback(intent); if (callback != null) { try { if (success) { callback.onAppOpened(VClientImpl.get().getCurrentPackage(), VUserHandle.myUserId()); } else { callback.onOpenFailed(VClientImpl.get().getCurrentPackage(), VUserHandle.myUserId()); } } catch (RemoteException e) { e.printStackTrace(); } } } }
public static void addService(String name, IBinder service) { IServiceFetcher fetcher = getServiceFetcher(); if (fetcher != null) { try { fetcher.addService(name, service); } catch (RemoteException e) { e.printStackTrace(); } } }
public static IUiCallback getUiCallback(Intent intent) { if (intent == null) { return null; } // only for launch intent. if (!Intent.ACTION_MAIN.equals(intent.getAction())) { return null; } try { Bundle bundle = intent.getBundleExtra("_VA_|_sender_"); if (bundle != null) { IBinder uicallbackToken = BundleCompat.getBinder(bundle, "_VA_|_ui_callback_"); return IUiCallback.Stub.asInterface(uicallbackToken); } } catch (Throwable ignored) { } return null; }
private boolean handleUninstallRequest(Intent intent) { IAppRequestListener listener = VirtualCore.get().getAppRequestListener(); if (listener != null) { Uri packageUri = intent.getData(); if (SCHEME_PACKAGE.equals(packageUri.getScheme())) { String pkg = packageUri.getSchemeSpecificPart(); try { listener.onRequestUninstall(pkg); return true; } catch (RemoteException e) { e.printStackTrace(); } } } return false; }
private boolean handleInstallRequest(Intent intent) { IAppRequestListener listener = VirtualCore.get().getAppRequestListener(); if (listener != null) { Uri packageUri = intent.getData(); String sourcePath = FileUtils.getFileFromUri(getHostContext(), packageUri); try { listener.onRequestInstall(sourcePath); return true; } catch (RemoteException e) { e.printStackTrace(); } } return false; }
public static IBinder getService(String name) { if (VirtualCore.get().isServerProcess()) { return ServiceCache.getService(name); } IServiceFetcher fetcher = getServiceFetcher(); if (fetcher != null) { try { return fetcher.getService(name); } catch (RemoteException e) { e.printStackTrace(); } } VLog.e(TAG, "GetService(%s) return null.", name); return null; }
mUiCallback.onOpenFailed(packageName, VUserHandle.myUserId()); } catch (RemoteException ignored) {
/** * Wipes all the data for a user, but doesn't remove the user. * @param handle * @hide */ public void wipeUser(int handle) { try { mService.wipeUser(handle); } catch (RemoteException re) { Log.w(TAG, "Could not wipe user " + handle); } }
public boolean uninstallPackageAsUser(String pkgName, int userId) { try { return getService().uninstallPackageAsUser(pkgName, userId); } catch (RemoteException e) { // Ignore } return false; }
public void scanApps() { try { getService().scanApps(); } catch (RemoteException e) { // Ignore } }
public boolean uninstallPackage(String pkgName) { try { return getService().uninstallPackage(pkgName); } catch (RemoteException e) { // Ignore } return false; }
@Override public void setAppRequestListener(final IAppRequestListener listener) { this.mAppRequestListener = listener; if (listener != null) { try { listener.asBinder().linkToDeath(new DeathRecipient() { @Override public void binderDied() { listener.asBinder().unlinkToDeath(this, 0); VAppManagerService.this.mAppRequestListener = null; } }, 0); } catch (RemoteException e) { e.printStackTrace(); } } }
@Override public void binderDied() { listener.asBinder().unlinkToDeath(this, 0); VAppManagerService.this.mAppRequestListener = null; } }, 0);
@Override public void binderDied() { listener.asBinder().unlinkToDeath(this, 0); VAppManagerService.this.mAppRequestListener = null; } }, 0);