调用 Android系统资源的方法

本文介绍了如何调用Android系统安装apk的Activity,包括查找Activity、匹配意图过滤器并启动。同时,讲解了如何获取系统Activity返回的响应码,通过在代码中设置Log或断点来观察结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    private void installAPK(File result) {
    Intent intent = new Intent();
    intent.setAction("android.intent.action.VIEW");
    intent.addCategory("android.intent.category.DEFAULT");
    String uriString = "file:" + result.getAbsolutePath();
    String type = "application/vnd.android.package-archive";
    intent.setDataAndType(Uri.parse(uriString), type);

    startActivityForResult(intent, REQUEST_CODE_INSTALL);
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_CODE_INSTALL && resultCode == RESULT_CODE_CANCEL) {
            //如果安装失败  返回主页面
            goDelayedHomePage();
        }else {
            //安装成功
            //TODO: 写一个Receiver
            //接收系统安装APP完成的广播,根据包名来唤醒更新后的APP
        }
    }

Question 1 :

  • 如何调用系统安装apk的Activity?

    1. 打开手机或者模拟器的SD卡,找一个apk文件,点击安装,停留在安装界面;
    2. 打开eclipse菜单栏中的window(如果没有,就选others,然后搜索window),在window界面可以看到当前和用户交互的Activity,而且会高亮显示;
    3. 拿到这个Activity之后,去Android源码中找到相应的包;
    4. 打开包的AndroidManifest文件,找到对应的Activity的意图过滤器;
    5. 在代码中new Intent(),匹配意图过滤器;
    6. 开启Activity

Question 2 :

  • 如何获取系统Activity 返回的响应码?
    1. 和上面是同样的原理,打开apk安装界面;
    2. 在代码中写一个Log输出,或者打一个断点;
    3. 点击apk安装界面的安装/取消按钮,在断点或者Log中查看结果;

总结 :

  • 很简单,想要获取系统的常量值,就去模拟系统执行的界面,在执行过程中,通过Log或者断点获取相应的常量的值,OK!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值