`
ehang_neu
  • 浏览: 4639 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

转:APK安装

阅读更多
需求:
   要求让用户选择喜欢的第三方应用下载并通过自己的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) 可以获得安装应用的列表
分享到:
评论

相关推荐

    XAPK安装程序.apk

    亲测可用,安装到Android手机或平板,打卡XAPK安装程序,会自动手撕鸡手机或平板中的Xapk格式文件,点击即可安装Xapk格式的APP。

    android客户端请求,服务端监听apk安装完成,通知客户端

    在我们的场景中,我们需要创建一个BroadcastReceiver来监听APK安装完成的广播。Android系统在安装完新的APK后会发送ACTION_PACKAGE_INSTALLED广播,我们可以注册这个广播来触发我们的逻辑。 ```java public class ...

    EXE转APK资源转换器

    针对这两种不同平台的文件格式,"EXE转APK资源转换器"提供了一个解决方案,允许用户将原本只能在电脑上运行的.exe程序转换为能在安卓手机上使用的.apk应用。 首先,我们要理解.exe和.apk的差异。.exe文件是基于...

    apk安装器.

    APK安装器是一款专为Android系统设计的应用程序安装工具,它允许用户在不通过Google Play商店的情况下,方便地安装和管理APK文件。APK是Android应用程序的包文件格式,相当于iOS系统的IPA文件,用于存储应用程序的...

    IPA转apk超级工具

    而Android则相对开放,允许用户从多个来源下载APK安装应用。 2. **IPA文件结构** IPA文件是包含iOS应用的zip压缩文件,内含.app文件、资源文件、证书和元数据等。这些内容都是苹果开发者使用Xcode构建并签名的,...

    xapk工具包.zip

    XAPK安装工具的主要功能包括: 1. **合并与拆分**:该工具可以将XAPK文件分解为普通的APK和OBB文件,也可以将这些单独的文件重新组合成一个完整的XAPK。这使得用户能更灵活地管理应用的各个部分,例如只更新特定的...

    利用BundleTool从aab包获取apk安装大小以及安装apk到手机

    本篇文章将详细介绍如何利用`BundleTool`从AAB包获取APK的安装大小,并实现在手机上的安装步骤。 首先,我们需要理解AAB(Android App Bundle)与传统的APK的区别。AAB是一种新的发布格式,它允许Google Play Store...

    xapk安装器.apk

    xapk安装器.apk

    APK安装工具.rar

    APK安装工具是Android操作系统中用于安装应用程序的必备组件,主要以.APK为扩展名的文件格式。在Android系统上,APK文件相当于Windows系统中的.exe可执行文件,是开发者将编写好的Android应用打包后的结果。这个...

    android技巧:apk文件反编译以及签名打包(dex2jar&jd,apktool,apk-sign)

    4. **APK签名**:在Android平台上,每个发布的APK都需要经过签名才能安装到设备上。签名验证了应用的来源,确保它没有被篡改。签名过程通常使用`apksigner`工具或` jarsigner`命令完成,它会生成一个数字证书,附加...

    apk转crx测试demo

    【apk转crx测试demo】是一个关于将Android的APK应用程序转换为Chrome浏览器扩展CRX格式的实践示例。这个测试用例以一个名为“2048-测试demo”的2048游戏应用为例,它包括原始的APK文件以及转换后的CRX文件。 首先,...

    apk反编译软件 修改 编译 做自己的软件

    内置APK安装程序允许您在Android设备上安装APK文件。要安装 APK文件,请转到“文件”菜单并选择“安装外部APK”&gt;,然后选 择“连接的设备”并单击“安装”按钮来定位要安装的APK文件。 其他: 此外,它还附带了多个...

    使用adb命令批处理安装卸载apk

    安装: 安装比较简单,批处理获取拖放的文件参数直接调用adb命令即可,需要设置下adb的路径 卸载: 卸载稍微复杂一点,因为需要提供包名给adb,所以要获取apk的包名。这里使用的方法是:先用winrar从apk文件中提取...

    jar和jad转换apk

    当用户下载一个Java应用程序时,设备会读取.jad文件来获取必要的信息,从而决定是否安装该应用程序。在Java ME平台中,.jad文件与.jar文件通常是一起使用的。 ### Android安装包(.apk) .apk文件是Android操作...

    android打包生成apk

    4. 高效性:APK 文件可以快速地下载和安装,提高了用户体验。 五、结论 Android 打包生成 APK 文件是 Android 应用程序开发的最后一步骤,也是将 Android 项目文件转换为可在 Android 设备上运行的 APK 文件的过程...

    android 系统调用安装apk

    使用上述任一方法进行APK安装时,都需要拥有`android.permission.INSTALL_PACKAGES`权限。如果当前应用或用户没有这一权限,将会抛出`SecurityException`异常。因此,在尝试安装APK前,应确保应用已获得相应的权限。...

    APK.1安装器.rar

    以后说"apk.1"了,就算是"apk.1.1.1"也能随意安装,碰到那种格式的文件时,首先点击“用其它应用打开”,然后选择下图中的选项设为默认,以后无需任何操作也不用跳转第三方app就能直接安装啦 相比于其它工具,这个就...

    安卓反编译apk,jar转dex,dex转jar,xml转txt,dex转tex,重打包dex,提取dex等操作工具

    本文将详细介绍如何使用“安卓反编译apk,jar转dex,dex转jar,xml转txt,dex转tex,重打包dex,提取dex等操作工具”这一工具集来实现这些目标。 首先,让我们理解一下核心概念: 1. **APK**: Android应用程序的...

    apk反编译工具

    4. **签名与验证**:APK在安装到设备上之前必须经过签名,这涉及到对APK的完整性检查。签名工具(如 jarsigner 或 Android Studio 内置工具)用于给APK添加签名,以确保其来源可信。 5. **逆向工程风险**:虽然APK...

Global site tag (gtag.js) - Google Analytics