• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java IPackageInstallObserver类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中android.content.pm.IPackageInstallObserver的典型用法代码示例。如果您正苦于以下问题:Java IPackageInstallObserver类的具体用法?Java IPackageInstallObserver怎么用?Java IPackageInstallObserver使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



IPackageInstallObserver类属于android.content.pm包,在下文中一共展示了IPackageInstallObserver类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: call

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
@Override public void call(Subscriber<? super Void> subscriber) {
  final IPackageInstallObserver.Stub silentObserver = new IPackageInstallObserver.Stub() {
    @Override public void packageInstalled(String packageName, int returnCode)
        throws RemoteException {
      if (returnCode == INSTALL_SUCCEEDED) {
        if (!subscriber.isUnsubscribed()) {
          subscriber.onNext(null);
          subscriber.onCompleted();
        }
      } else {
        if (!subscriber.isUnsubscribed()) {
          subscriber.onError(
              new InstallationException("Package not installed with error code: " + returnCode));
        }
      }
    }
  };

  if (isSystem(context)) {
    try {
      Method installPackage = packageManager.getClass()
          .getMethod("installPackage", Uri.class, IPackageInstallObserver.class, int.class,
              String.class);
      Object[] params = new Object[] { packageUri, silentObserver, INSTALL_REPLACE_EXISTING, "" };
      installPackage.invoke(packageManager, params);
    } catch (Exception e) {
      if (!subscriber.isUnsubscribed()) {
        subscriber.onError(new InstallationException(e));
      }
    }
  } else {
    if (!subscriber.isUnsubscribed()) {
      subscriber.onError(new InstallationException("Aptoide does not hold system privilege!"));
    }
  }
}
 
开发者ID:Aptoide,项目名称:aptoide-client-v8,代码行数:37,代码来源:SystemInstallOnSubscribe.java


示例2: onCreate

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
@Override
public void onCreate() {
    super.onCreate();

    // get internal methods via reflection
    try {
        Class<?>[] installTypes = {
            Uri.class, IPackageInstallObserver.class, int.class,
            String.class,
        };
        Class<?>[] deleteTypes = {
            String.class, IPackageDeleteObserver.class,
            int.class,
        };

        PackageManager pm = getPackageManager();
        mInstallMethod = pm.getClass().getMethod("installPackage", installTypes);
        mDeleteMethod = pm.getClass().getMethod("deletePackage", deleteTypes);
    } catch (NoSuchMethodException e) {
        Log.e(TAG, "Android not compatible!", e);
        stopSelf();
    }
}
 
开发者ID:CmDnoEdition,项目名称:fdroid,代码行数:24,代码来源:PrivilegedService.java


示例3: SystemInstaller

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
public SystemInstaller(Context context, PackageManager pm,
        InstallerCallback callback) throws AndroidNotCompatibleException {
    super(context, pm, callback);

    // create internal callbacks
    mInstallObserver = new PackageInstallObserver();
    mDeleteObserver = new PackageDeleteObserver();

    try {
        Class<?>[] installTypes = new Class[] {
                Uri.class, IPackageInstallObserver.class, int.class,
                String.class
        };
        Class<?>[] deleteTypes = new Class[] {
                String.class, IPackageDeleteObserver.class,
                int.class
        };

        mInstallMethod = mPm.getClass().getMethod("installPackage", installTypes);
        mDeleteMethod = mPm.getClass().getMethod("deletePackage", deleteTypes);
    } catch (NoSuchMethodException e) {
        throw new AndroidNotCompatibleException(e);
    }
}
 
开发者ID:princeofgiri,项目名称:f-droid,代码行数:25,代码来源:SystemInstaller.java


示例4: installPackageLowApi

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
/**
 * 适配 5.0以下系统
 * 
 * @param path
 * @param iInstallerCallback
 * @throws Exception
 */
private void installPackageLowApi(String path, final IInstallerCallback iInstallerCallback) throws Exception {
	final Uri uri = Uri.parse(path);
	final int flags = PMFlags.INSTALL_REPLACE_EXISTING;
	final PackageInstallObserver observer = new PackageInstallObserver(iInstallerCallback);
	final IPackageManager ipm = getIPackageManager();
	RefInvoke.invokeMethodWithException(ipm.getClass(), "installPackage", ipm, new Class[] { Uri.class, IPackageInstallObserver.class, int.class, String.class }, new Object[] { uri, observer, flags, null });
}
 
开发者ID:messnoTrace,项目名称:SlienceInstall,代码行数:15,代码来源:PM.java


示例5: ApplicationManager

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
public ApplicationManager(Context context) throws SecurityException, NoSuchMethodException {
	
       observer = new PackageInstallObserver();
       observerdelete = new PackageDeleteObserver(); 
       pm = context.getPackageManager();
       
       Class<?>[] types = new Class[] {Uri.class, IPackageInstallObserver.class, int.class, String.class};
       Class<?>[] uninstalltypes = new Class[] {String.class, IPackageDeleteObserver.class, int.class};
       
	method = pm.getClass().getMethod("installPackage", types);
	uninstallmethod = pm.getClass().getMethod("deletePackage", uninstalltypes);
}
 
开发者ID:coderminer,项目名称:Demo_Public,代码行数:13,代码来源:ApplicationManager.java


示例6: ApplicationManager

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
public ApplicationManager(Context context) throws SecurityException, NoSuchMethodException {
    observer = new PackageInstallObserver();
    pm = context.getPackageManager();

    // 파라미터 설정
    Class<?>[] types = new Class[]{Uri.class, IPackageInstallObserver.class, int.class, String.class};
    // installPackage 이름 붙은거와 위 types 라는 파라미터를 담은 메소드를 찾음
    method = pm.getClass().getMethod("installPackage", types);
}
 
开发者ID:juniecho,项目名称:GLAppManager,代码行数:10,代码来源:ApplicationManager.java


示例7: installPackage

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
public static void installPackage(Context paramContext, Uri paramUri, PackageInstallObserver paramPackageInstallObserver, int paramInt)
{
  IPackageInstallObserver.Stub local1 = new IPackageInstallObserver.Stub()
  {
    public final void packageInstalled(String paramAnonymousString, int paramAnonymousInt)
    {
      if (this.val$observer != null) {
        this.val$observer.packageInstalled(paramAnonymousString, paramAnonymousInt);
      }
    }
  };
  try
  {
    Class[] arrayOfClass = new Class[4];
    arrayOfClass[0] = Uri.class;
    arrayOfClass[1] = IPackageInstallObserver.class;
    arrayOfClass[2] = Integer.TYPE;
    arrayOfClass[3] = String.class;
    Method localMethod = PackageManager.class.getMethod("installPackage", arrayOfClass);
    PackageManager localPackageManager = paramContext.getPackageManager();
    Object[] arrayOfObject = new Object[4];
    arrayOfObject[0] = paramUri;
    arrayOfObject[1] = local1;
    arrayOfObject[2] = Integer.valueOf(paramInt);
    arrayOfObject[3] = "com.android.vending";
    localMethod.invoke(localPackageManager, arrayOfObject);
    return;
  }
  catch (NoSuchMethodException localNoSuchMethodException)
  {
    FinskyLog.d("Cannot install packages on this platform", new Object[0]);
    return;
  }
  catch (SecurityException localSecurityException)
  {
    FinskyLog.wtf(localSecurityException, "Cannot install packages due to security exception", new Object[0]);
    return;
  }
  catch (IllegalAccessException localIllegalAccessException)
  {
    FinskyLog.wtf(localIllegalAccessException, "Cannot install packages due to reflection access exception", new Object[0]);
    return;
  }
  catch (InvocationTargetException localInvocationTargetException)
  {
    FinskyLog.wtf(localInvocationTargetException, "Cannot install packages due to reflection invocation exception", new Object[0]);
  }
}
 
开发者ID:ChiangC,项目名称:FMTech,代码行数:49,代码来源:PackageManagerHelper.java


示例8: installPackage

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
@Override
public void installPackage(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName) {

}
 
开发者ID:qx,项目名称:FullRobolectricTestSample,代码行数:5,代码来源:StubPackageManager.java


示例9: installPackageWithVerification

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
@Override
public void installPackageWithVerification(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) {

}
 
开发者ID:qx,项目名称:FullRobolectricTestSample,代码行数:5,代码来源:StubPackageManager.java


示例10: installPackageWithVerificationAndEncryption

import android.content.pm.IPackageInstallObserver; //导入依赖的package包/类
@Override
public void installPackageWithVerificationAndEncryption(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName, VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) {

}
 
开发者ID:qx,项目名称:FullRobolectricTestSample,代码行数:5,代码来源:StubPackageManager.java



注:本文中的android.content.pm.IPackageInstallObserver类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java NamingPolicy类代码示例发布时间:2022-05-22
下一篇:
Java TransitionToStandbyRequestProto类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap