Android 中 Intent 的使用

Android中Intent的使用与注册广播接收者详解
本文深入探讨了Android中Intent的使用场景,包括开启Activity、Service及系统应用操作,以及如何注册并利用广播接收者实现特定功能。详细介绍了Intent的基本语法、系统应用操作方法、权限需求,并通过实例展示了拨号、安装应用、发送短信等用法。

在Android中,Intent的使用场景分为以下2种:

1、开启另一个Activity或者Service
2、注册广播接收者

其中开启另一个Activity 或者Service 又分为开启本应用中的Activity和开启系统应用中的Activity,开启本应用中的Activity或Service其实不用多说,大家也用的很多,值得注意的一点是Intent可以携带很多数据:

    Intent intent = new Intent();
    Bundle b = new Bundle();  //里面可以put很多数据
    intent.putExtras()
    intent.setClass(MainActivity.this,OtherActivity.class);

有一点小细节就是如果在BroadCastReceiver中启动一个Activity的话,需要设置一个flag

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

下面列出一些开启系统应用的用法:

  • 安装应用程序
String apkPath = "你的apk文件路径";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setDataAndType(Uri.fromFile(new File(apkPath)), "application/vnd.android.package-archive");
startActivityForResult(intent, 0); //如果用户取消安装的话,会返回结果
  • 打电话
   String number = "手机号码";
   Intent intent = new Intent();
   intent.setData(Uri.parse("tel:"+number))
   startActivity(intent);

一下就是注册广播接收者的一些用法了,下面代码都是在清单文件中注册:

  • 拨号广播:
    android.intent.action.NEW_OUTGOING_CALL

  • 权限:
    android.permission.PROCESS_OUTGOING_CALLS

  • 收到短信广播:

    android.provider.Telephony.SMS_RECEIVED
    权限:android.permission.RECEIVE_SMS
    需要设置意图过滤器优先级

  • 开机广播:

    android.intent.action.BOOT_COMPLETED
    权限:android.permission.RECEIVE_BOOT_COMPLETED

  • 安装卸载更新应用程序广播:

    `android.intent.action.PACKAGE_ADDED`  安装
    
    `android.intent.action.PACKAGE_REPLACED` 更新
    
    `andorid.intent.action.PACKAGE_REMOVE`
    
    `data-------------scheme="package"`
    
  • SD卡状态广播:

    android.intent.action.MEDIA_MOUNTED 挂载

    andorid.intent.action.MEDIA_REMOVED 卸载

    android.intent.action.MEDIA_UNMOUNTED 没挂载

上面的一些Intent 可以通过设置意图过滤器来获取一些系统的广播,这样就可以实现一些特殊的需求了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值