使用Apktool正常编译apk后,安装时报:解析软件包时出现问题(33),详细信息:packageInfo is null 解决方案 这是由于应用程序的签名不正确。使用签名工具对apk签名一下就行。
PackageInfo info = null; manager = this.getPackageManager(); try { info = manager.getPackageInfo(this.getPackageName(), 0); String name = info.versionName; int versionCode = info.versionCode; String packageName = info.packageName; Signature[] signatures = info.signatures; System.out.println...
1PackageManager packageManager = getPackageManager; 2// 获取所有已安装程序的包信息 3List<PackageInfo> packages = packageManager.getInstalledPackages( 0); getPackageManager 实际是Context的方法,具体实现是 ContextImpl 中: 1@Override 2publicPackageManager getPackageManager{ 3if(mPackageManager != nu...
1、public abstract PackageInfo getPackageInfo(String packageName, int flags)方法: 通过包名获取该包名对应的应用程序的PackageInfo对象 代码在PackageManager.java2031行 /** * Retrieve overall information about an application package that is * installed on the system. * * Throws {@link NameNotFoundExc...
(2) 使用 PackageUtil.getPackageInfo() 解析APK权限信息(可用于安装前展示给用户),注意参数flags 是 PackageManager.GET_PERMISSIONS;使用PackageUtil.getAppSnippet()获取apk摘要:图标、名字;(3) 然后使用 checkIfAllowedAndInitiateInstall() 是检查APK来源,展示"未知来源APK安装"的对话框,当点击"settings"按钮后...
privatebooleanisApkValid(PackageInfopackageInfo){returnpackageInfo!=null&&packageInfo.applicationInfo!=null;} 1. 2. 3. 安装apk文件。 最后一步是安装apk文件。我们可以使用ACTION_VIEW和setDataAndType方法来启动安装界面,并传递apk文件的URI和MIME类型。
//得到PackageInfo对象,其中包含了该apk包含的activity和servicepublic static PackageInfo getPackageInfo(Context context, String apkFilepath) { PackageManager pm = context.getPackageManager(); PackageInfo pkgInfo = null; try { pkgInfo = pm.getPackageArchiveInfo(apkFilepath, PackageManager.GET_ACTIVITIES...
uid); } // A restore should be performed at this point if (a) the install // succeeded, (b) the operation is not an update, and (c) the new // package has not opted out of backup participation. final boolean update = res.removedInfo.removedPackage != null; final int flags = (...
final PackageInstaller.SessionInfo info=mInstaller.getSessionInfo(sessionId);if(info==null||!info.sealed||info.resolvedBaseCodePath==null){Log.w(TAG,"Session "+mSessionId+" in funky state; ignoring");finish();return;}mSessionId=sessionId;mPackageURI=Uri.fromFile(newFile(info.resolvedBaseCode...
if(apexContainingPkg == null || apexMgr.isFactory( apexMgr.getPackageInfo(apexContainingPkg, MATCH_ACTIVE_PACKAGE))) { // ... 进行和xml声明的权限进行对比... 发现在黑名单找到这个perm的或者在白名单找不到这个perm // 一律加到开机防火墙(我自己想的名字0.0)中 ...