您的位置:首页 > 移动开发 > Android开发

Android 中 Intent 的使用

2015-08-20 21:42 525 查看
在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 可以通过设置意图过滤器来获取一些系统的广播,这样就可以实现一些特殊的需求了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: