Android应用intent跳转到系统界面汇总

前段时间做项目的时候,需要对纯文本内容做正则匹配,识别出电话号码,并要求直接呼叫和保存。电话号码的正则网上到处都是,也不是很难写,看需求自己弄一个就行了。至于呼叫和保存,需要调用系统的应用进行,本来也挺简单的,这里就做一下总结。

呼叫:

Intent dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNum));
context.startActivity(dialIntent);


保存到通讯录:

1.直接新建联系人

Intent newContactIntent = new Intent(Intent.ACTION_INSERT);
newContactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);
newContactIntent.putExtra(ContactsContract.Intents.Insert.PHONE, phoneNum);//携带号码跳转,可追加别的信息
context.startActivity(newContactIntent);

2.保存到现有联系人

Intent editContactIntent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
editContactIntent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
editContactIntent.putExtra(ContactsContract.Intents.Insert.PHONE, phoneNum);//携带号码跳转。可追加别的信息
context.startActivity(editContactIntent);

这里要特别注意的是第二种情况,网上很多其他的方法,比如直接把type设置为“vnd.android.cursor.item/people”之类的,经过测试,这种写法在MIUI上是无效的,找不到对应的activity而崩溃退出应用。至于CONTENT_TYPE和CONTENT_ITEM_TYPE,还不是很了解,但在第一种情况下如果type设置为CONTENT_ITEM_TYPE,也会崩溃退出。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值