本文整理汇总了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;未经允许,请勿转载。 |
请发表评论