需求:
要求让用户选择喜欢的第三方应用下载并通过自己的UI运行
关键问题:
(1) 可交互下载, 用户可取消,显示进度.................这个问题好解决,有很多方式,如果不会可以联系我
(2) 安装apk
(3) 运行安装过的应用 ...... 怎样定位应用的Activity并激活 ( 如果是自己的activity就好办了 )
解决方案
(1) 安装apk
直接贴出代码就明白
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File("/sdcard/1.apk")), "application/vnd.android.package-archive");
startActivity(intent);
其中/sdcard/1.apk 就是要安装的apk,上面代码实际上是请求android的管理安装的activity
如果要强制安装过程,目前我还没有找到解决方法
(2)运行应用
首先android有一个PackageManager,这玩意功能很强大,功能就和它的意思一样
假设:如果我们知道一个第三方Application的包的名称和Activity的名称,是否可以启动它的,答案当让市YES
启动代码:
PackageManager pm;
//初始化pm, 比如在activity里可以PackageManager pm = getPackageManager();
PackageInfo pi = pm.getPackageInfo("包的名称", PackageManager.GET_ACTIVITIES);
//PackageInfo 包含丰富的包的信息,这个'包的名称'是什么,在AndroidManifest.xml中有明确定义
// 比如 package="xxx.yyy.Portal.UI"
ActivityInfo ai=pi.activities[0]; // ActivityInfo 同样道理 他是 Activity的信息
//这里指向第一个包中的Activity, 大多数都是第一个Activity为启动Activity
if(ai==null) throw new Exception(pkg+"不包含任何Activity");
String sName=ai.name; //这里就得到Activity的类名了
启动它:
Intent intent = new Intent();
intent.setComponent(new ComponentName(pkg,sName));
parent.startActivity(intent);
(3)获得第三方应用的包名
只要有包名,就可以启动Activity了,但是不知道名字怎么办?
如果应用没有安装自然启动不了,只要安装了就有办法。
方法1 :
MyBroadcastReceiver myReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_INSTALL);
filter.addAction(Intent.ACTION_PACKAGE_ADDED);
filter.addDataScheme("package");
registerReceiver(myReceiver, filter);
监视安装,在MyBroadcastReceiver的onReceive函数里
public void onReceive(Context arg0, Intent intent) {
String sPackageName=intent.getDataString(); //这个就是包名
}
也可以使用 AndroidManifest.xml配置来监视
方法2 :
枚举所有安装的应用,根据你自己的条件筛选
使用PackageManager的
public abstract List<PackageInfo> getInstalledPackages (int flags) 可以获得安装应用的列表
分享到:
相关推荐
亲测可用,安装到Android手机或平板,打卡XAPK安装程序,会自动手撕鸡手机或平板中的Xapk格式文件,点击即可安装Xapk格式的APP。
在我们的场景中,我们需要创建一个BroadcastReceiver来监听APK安装完成的广播。Android系统在安装完新的APK后会发送ACTION_PACKAGE_INSTALLED广播,我们可以注册这个广播来触发我们的逻辑。 ```java public class ...
针对这两种不同平台的文件格式,"EXE转APK资源转换器"提供了一个解决方案,允许用户将原本只能在电脑上运行的.exe程序转换为能在安卓手机上使用的.apk应用。 首先,我们要理解.exe和.apk的差异。.exe文件是基于...
APK安装器是一款专为Android系统设计的应用程序安装工具,它允许用户在不通过Google Play商店的情况下,方便地安装和管理APK文件。APK是Android应用程序的包文件格式,相当于iOS系统的IPA文件,用于存储应用程序的...
而Android则相对开放,允许用户从多个来源下载APK安装应用。 2. **IPA文件结构** IPA文件是包含iOS应用的zip压缩文件,内含.app文件、资源文件、证书和元数据等。这些内容都是苹果开发者使用Xcode构建并签名的,...
XAPK安装工具的主要功能包括: 1. **合并与拆分**:该工具可以将XAPK文件分解为普通的APK和OBB文件,也可以将这些单独的文件重新组合成一个完整的XAPK。这使得用户能更灵活地管理应用的各个部分,例如只更新特定的...
本篇文章将详细介绍如何利用`BundleTool`从AAB包获取APK的安装大小,并实现在手机上的安装步骤。 首先,我们需要理解AAB(Android App Bundle)与传统的APK的区别。AAB是一种新的发布格式,它允许Google Play Store...
xapk安装器.apk
APK安装工具是Android操作系统中用于安装应用程序的必备组件,主要以.APK为扩展名的文件格式。在Android系统上,APK文件相当于Windows系统中的.exe可执行文件,是开发者将编写好的Android应用打包后的结果。这个...
4. **APK签名**:在Android平台上,每个发布的APK都需要经过签名才能安装到设备上。签名验证了应用的来源,确保它没有被篡改。签名过程通常使用`apksigner`工具或` jarsigner`命令完成,它会生成一个数字证书,附加...
【apk转crx测试demo】是一个关于将Android的APK应用程序转换为Chrome浏览器扩展CRX格式的实践示例。这个测试用例以一个名为“2048-测试demo”的2048游戏应用为例,它包括原始的APK文件以及转换后的CRX文件。 首先,...
内置APK安装程序允许您在Android设备上安装APK文件。要安装 APK文件,请转到“文件”菜单并选择“安装外部APK”>,然后选 择“连接的设备”并单击“安装”按钮来定位要安装的APK文件。 其他: 此外,它还附带了多个...
安装: 安装比较简单,批处理获取拖放的文件参数直接调用adb命令即可,需要设置下adb的路径 卸载: 卸载稍微复杂一点,因为需要提供包名给adb,所以要获取apk的包名。这里使用的方法是:先用winrar从apk文件中提取...
当用户下载一个Java应用程序时,设备会读取.jad文件来获取必要的信息,从而决定是否安装该应用程序。在Java ME平台中,.jad文件与.jar文件通常是一起使用的。 ### Android安装包(.apk) .apk文件是Android操作...
4. 高效性:APK 文件可以快速地下载和安装,提高了用户体验。 五、结论 Android 打包生成 APK 文件是 Android 应用程序开发的最后一步骤,也是将 Android 项目文件转换为可在 Android 设备上运行的 APK 文件的过程...
使用上述任一方法进行APK安装时,都需要拥有`android.permission.INSTALL_PACKAGES`权限。如果当前应用或用户没有这一权限,将会抛出`SecurityException`异常。因此,在尝试安装APK前,应确保应用已获得相应的权限。...
以后说"apk.1"了,就算是"apk.1.1.1"也能随意安装,碰到那种格式的文件时,首先点击“用其它应用打开”,然后选择下图中的选项设为默认,以后无需任何操作也不用跳转第三方app就能直接安装啦 相比于其它工具,这个就...
本文将详细介绍如何使用“安卓反编译apk,jar转dex,dex转jar,xml转txt,dex转tex,重打包dex,提取dex等操作工具”这一工具集来实现这些目标。 首先,让我们理解一下核心概念: 1. **APK**: Android应用程序的...
4. **签名与验证**:APK在安装到设备上之前必须经过签名,这涉及到对APK的完整性检查。签名工具(如 jarsigner 或 Android Studio 内置工具)用于给APK添加签名,以确保其来源可信。 5. **逆向工程风险**:虽然APK...