Android跳转到系统联系人及拨号或短信界面
现在开发中的功能需要直接跳转到拨号、联系人、短信界面等等,查找了很多资料,自己整理了一下。
1、跳转到拨号界面,代码如下:
1)直接拨打
IntentintentPhone=newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber)); startActivity(intentPhone);
2)跳转到拨号界面
Intentintent=newIntent(Intent.ACTION_DIAL,Uri.parse("tel:"+phoneNumber)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
2、跳转到联系人页面,使用一下代码:
IntentintentPhone=newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber)); startActivity(intentPhone);
以下内容为转载:
Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面现在开发中的功能需要直接跳转到拨号、联系人、短信界面等等,查找了很多资料,自己整理了一下。
//安装已经存在的apk StringfilePath="mnt/sdcard/abc.apk"; Intentintent=newIntent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://"+filePath), "application/vnd.Android.package-archive"); startActivity(intent);//直接跳到安装页面,但是还要点击按钮确定安装,还是取消安装 //卸载某应用 StringpackageName="org.adw.launcher2" UripackageUri=Uri.parse("package:"+packageName);//包名,指定该应用 IntentuninstallIntent=newIntent(Intent.ACTION_DELETE,packageUri); startActivity(uninstallIntent); //查看某一应用程序的信息 Uriuri=Uri.parse("package:"+packageName);//包名,指定该应用 Intentintent=newIntent("android.settings.APPLICATION_DETAILS_SETTINGS",uri); startActivity(intent); 2.浏览网页某一具体网址 Uriuri=Uri.parse("http://xxxxxxxxxxxxxxxxxxxxxxxx"); Intentintent=newIntent(Intent.ACTION_VIEW,uri); //加下面这句话就是启动系统自带的浏览器打开上面的网址,不加下面一句话,如果你有多个浏览器,就会弹出让你选择某一浏览器,然后改浏览器就会打开该网址............... intent.setClassName("com.android.browser","com.android.browser.BrowserActivity"); startActivity(intent); //系统设置界面 Intentintent=newIntent(); intent.setClassName("com.android.settings","com.android.settings.Settings"); startActivity(intent); //回到桌面吗 Intentintent=newIntent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent); //系统拨号界面 Intentintent=newIntent(Intent.ACTION_DIAL); intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity"); startActivity(intent); //系统通话记录界面 Intentintent=newIntent(); intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent); //拨号 Uriuri=Uri.parse("tel:xxxxxx"); Intentintent=newIntent(Intent.ACTION_DIAL,uri); startActivity(intent); //启动拨号界面,指定了类名包名是系统的拨号界面DialtactsActivity Intentintent=newIntent("android.intent.action.DIAL"); intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity"); startActivity(intent); //系统联系人界面PeopleActivity Intentintent001=newIntent(); intent001.setClassName("com.android.contacts","com.android.contacts.activities.PeopleActivity"); startActivity(intent001); //系统搜索界面SearchActivity Intentintent002=newIntent(); intent002.setClassName("com.android.quicksearchbox","com.android.quicksearchbox.SearchActivity"); startActivity(intent002); //启动短信收件箱的界面,指定了包名,类名 Intentintent4=newIntent(); intent4.setClassName("com.android.mms","com.android.mms.ui.ConversationList"); startActivity(intent4); //启动联系人界面,不好 Intentintent=newIntent(); intent.setAction(Intent.ACTION_PICK); intent.setData(Contacts.People.CONTENT_URI); startActivity(intent); 插入联系人 Intentintent=newIntent(Intent.ACTION_EDIT,Uri.parse("content://com.android.contacts/contacts/"+"1")); startActivity(intent); 到联系人列表界面 Intentintent=newIntent(Intent.ACTION_INSERT_OR_EDIT); intent.setType("vnd.android.cursor.item/person"); intent.setType("vnd.android.cursor.item/contact"); intent.setType("vnd.android.cursor.item/raw_contact"); intent.putExtra(android.provider.ContactsContract.Intents.Insert.NAME,name); intent.putExtra(android.provider.ContactsContract.Intents.Insert.COMPANY,company); intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE,tel); intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE_TYPE,3); //启动短信收件箱的界面,指定了包名,类名 Intentintent=newIntent(); intent.setClassName("com.android.mms","com.android.mms.ui.ConversationList"); startActivity(intent); //启动编辑短信的界面 Intentintent=newIntent(Intent.ACTION_VIEW); intent.setType("vnd.android-dir/mms-sms"); //intent.setData(Uri.parse("content://mms-sms/conversations/"));//此为号码 startActivity(intent); --------------------------------------------------------------- 2--------------------------------------------------------------- --------------------------------------------------------------- 现在开发中的功能需要直接跳转到拨号、联系人、短信界面等等,查找了很多资料,自己整理了一下。 首先,我们先看拨号界面,代码如下: Intentintent=newIntent(); intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent); 和 Uriuri=Uri.parse("tel:xxxxxx"); Intentintent=newIntent(Intent.ACTION_DIAL,uri); startActivity(intent); 两者都行 但是如果是跳转到应用,使用一下代码: Intentintent=newIntent("android.intent.action.DIAL"); intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity"); 到通话记录界面: Intentintent=newIntent(); intent.setAction(Intent.ACTION_CALL_BUTTON); startActivity(intent); 到联系人界面: Intentintent=newIntent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Contacts.People.CONTENT_URI); startActivity(intent); 到应用: Intentintent=newIntent("com.android.contacts.action.LIST_STREQUENT"); intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity"); 调用联系人界面: Intentintent=newIntent(); intent.setAction(Intent.ACTION_PICK); intent.setData(Contacts.People.CONTENT_URI); startActivity(intent); 插入联系人 Intentintent=newIntent(Intent.ACTION_EDIT,Uri.parse("content://com.android.contacts/contacts/"+"1")); startActivity(intent); 到联系人列表界面 Intentintent=newIntent(Intent.ACTION_INSERT_OR_EDIT); intent.setType("vnd.android.cursor.item/person"); intent.setType("vnd.android.cursor.item/contact"); intent.setType("vnd.android.cursor.item/raw_contact"); intent.putExtra(android.provider.ContactsContract.Intents.Insert.NAME,name); intent.putExtra(android.provider.ContactsContract.Intents.Insert.COMPANY,company); intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE,tel); intent.putExtra(android.provider.ContactsContract.Intents.Insert.PHONE_TYPE,3); 复制代码 到短信界面: Intentintent=newIntent(Intent.ACTION_VIEW); intent.setType("vnd.android-dir/mms-sms"); //intent.setData(Uri.parse("content://mms-sms/conversations/"));//此为号码 startActivity(intent); 到应用: Intentintent=newIntent("android.intent.action.CONVERSATION"); startActivity(intent); 以下是在网上找到的其他方法: 1.从google搜索内容 Intentintent=newIntent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY,"searchString") startActivity(intent); 2.浏览网页 Uriuri=Uri.parse("http://www.google.com"); Intentit=newIntent(Intent.ACTION_VIEW,uri); startActivity(it); 3.显示地图 Uriuri=Uri.parse("geo:38.899533,-77.036476"); Intentit=newIntent(Intent.Action_VIEW,uri); startActivity(it); 4.路径规划 Uriuri=Uri.parse("http://maps.google.com/maps?f=dsaddr=startLat%20startLng&daddr=endLat%20endLng&hl=en"); Intentit=newIntent(Intent.ACTION_VIEW,URI); startActivity(it); 5.拨打电话 Uriuri=Uri.parse("tel:xxxxxx"); Intentit=newIntent(Intent.ACTION_DIAL,uri); startActivity(it); 和 uri=Uri.parse("tel:"+number); intent=newIntent(Intent.ACTION_CALL,uri); startActivity(intent); 其中不同自己试验一下就知道了。 6.调用发短信的程序 Intentit=newIntent(Intent.ACTION_VIEW); it.putExtra("sms_body","TheSMStext"); it.setType("vnd.android-dir/mms-sms"); startActivity(it); 和 uri=Uri.parse("smsto:"+要发送短信的对方的number); intent=newIntent(Intent.ACTION_SENDTO,uri); startActivity(intent); 和 mIntent=newIntent(Intent.ACTION_VIEW); mIntent.putExtra("address",c.getString(c.getColumnIndex(column))); mIntent.setType("vnd.android-dir/mms-sms"); startActivity(mIntent); 7.发送短信 Uriuri=Uri.parse("smsto:0800000123"); Intentit=newIntent(Intent.ACTION_SENDTO,uri); it.putExtra("sms_body","TheSMStext"); startActivity(it); Stringbody="thisissmsdemo"; Intentmmsintent=newIntent(Intent.ACTION_SENDTO,Uri.fromParts("smsto",number,null)); mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY,body); mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE,true); mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT,true); startActivity(mmsintent);<spanstyle="font-family:Simsun;white-space:normal;background-color:rgb(255,255,255);"></span> 8.发送彩信 Uriuri=Uri.parse("content://media/external/images/media/23"); Intentit=newIntent(Intent.ACTION_SEND); it.putExtra("sms_body","sometext"); it.putExtra(Intent.EXTRA_STREAM,uri); it.setType("image/png"); startActivity(it); StringBuildersb=newStringBuilder(); sb.append("file://"); sb.append(fd.getAbsoluteFile()); Intentintent=newIntent(Intent.ACTION_SENDTO,Uri.fromParts("mmsto",number,null)); //Belowextradatasarealloptional. intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_SUBJECT,subject); intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY,body); intent.putExtra(Messaging.KEY_ACTION_SENDTO_CONTENT_URI,sb.toString()); intent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE,composeMode); intent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT,exitOnSent); startActivity(intent); 9.发送Email Uriuri=Uri.parse("mailto:xxx@abc.com"); Intentit=newIntent(Intent.ACTION_SENDTO,uri); startActivity(it); Intentit=newIntent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_EMAIL,"me@abc.com"); it.putExtra(Intent.EXTRA_TEXT,"Theemailbodytext"); it.setType("text/plain"); startActivity(Intent.createChooser(it,"ChooseEmailClient")); Intentit=newIntent(Intent.ACTION_SEND); String[]tos={"me@abc.com"}; String[]ccs={"you@abc.com"}; it.putExtra(Intent.EXTRA_EMAIL,tos); it.putExtra(Intent.EXTRA_CC,ccs); it.putExtra(Intent.EXTRA_TEXT,"Theemailbodytext"); it.putExtra(Intent.EXTRA_SUBJECT,"Theemailsubjecttext"); it.setType("message/rfc822"); startActivity(Intent.createChooser(it,"ChooseEmailClient")); Intentit=newIntent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT,"Theemailsubjecttext"); it.putExtra(Intent.EXTRA_STREAM,"file:///sdcard/mysong.mp3"); sendIntent.setType("audio/mp3"); startActivity(Intent.createChooser(it,"ChooseEmailClient")); 10.播放多媒体 Intentit=newIntent(Intent.ACTION_VIEW); Uriuri=Uri.parse("file:///sdcard/song.mp3"); it.setDataAndType(uri,"audio/mp3"); startActivity(it); Uriuri=Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,"1"); Intentit=newIntent(Intent.ACTION_VIEW,uri); startActivity(it); 11.uninstallapk Uriuri=Uri.fromParts("package",strPackageName,null); Intentit=newIntent(Intent.ACTION_DELETE,uri); startActivity(it); 12.installapk UriinstallUri=Uri.fromParts("package","xxx",null); returnIt=newIntent(Intent.ACTION_PACKAGE_ADDED,installUri); 13.打开照相机 <1>Intenti=newIntent(Intent.ACTION_CAMERA_BUTTON,null); this.sendBroadcast(i); <2>longdateTaken=System.currentTimeMillis(); Stringname=createName(dateTaken)+".jpg"; fileName=folder+name; ContentValuesvalues=newContentValues(); values.put(Images.Media.TITLE,fileName); values.put("_data",fileName); values.put(Images.Media.PICASA_ID,fileName); values.put(Images.Media.DISPLAY_NAME,fileName); values.put(Images.Media.DESCRIPTION,fileName); values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME,fileName); UriphotoUri=getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values); IntentinttPhoto=newIntent(MediaStore.ACTION_IMAGE_CAPTURE); inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT,photoUri); startActivityForResult(inttPhoto,10); 14.从gallery选取图片 Intenti=newIntent(); i.setType("image/*"); i.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(i,11); 15.打开录音机 Intentmi=newIntent(Media.RECORD_SOUND_ACTION); startActivity(mi); 16.显示应用详细列表 Uriuri=Uri.parse("market://details?id=app_id"); Intentit=newIntent(Intent.ACTION_VIEW,uri); startActivity(it); //whereapp_idistheapplicationID,findtheID //byclickingonyourapplicationonMarkethome //page,andnoticetheIDfromtheaddressbar<spanstyle="font-family:Simsun;white-space:normal;background-color:rgb(255,255,255);"></span> 刚才找appid未果,结果发现用packagename也可以Uriuri=Uri.parse("market://details?id=<packagename>"); 这个简单多了 17寻找应用 Uriuri=Uri.parse("market://search?q=pname:pkg_name"); Intentit=newIntent(Intent.ACTION_VIEW,uri); startActivity(it); //wherepkg_nameisthefullpackagepathforanapplication<spanstyle="font-family:Simsun;white-space:normal;background-color:rgb(255,255,255);"></span> 18打开联系人列表 Intenti=newIntent(); i.setAction(Intent.ACTION_GET_CONTENT); i.setType("vnd.android.cursor.item/phone"); startActivityForResult(i,REQUEST_TEXT); Uriuri=Uri.parse("content://contacts/people"); Intentit=newIntent(Intent.ACTION_PICK,uri); startActivityForResult(it,REQUEST_TEXT); 19打开另一程序 Intenti=newIntent(); ComponentNamecn=newComponentName("com.yellowbook.android2","com.yellowbook.android2.AndroidSearch"); i.setComponent(cn); i.setAction("android.intent.action.MAIN"); startActivityForResult(i,RESULT_OK); 20添加到短信收件箱 ContentValuescv=newContentValues(); cv.put("type","1"); cv.put("address","短信地址"); cv.put("body","短信内容"); getContentResolver().insert(Uri.parse("content://sms/inbox"),cv); 21从sim卡或者联系人中查询 Cursorcursor; Uriuri; if(type==1){ Intentintent=newIntent(); intent.setData(Uri.parse("content://icc/adn")); uri=intent.getData(); }else uri=People.CONTENT_URI; cursor=activity.getContentResolver().query(uri,null,null,null,null); while(cursor.moveToNext()){ intpeopleId=cursor.getColumnIndex(People._ID); intnameId=cursor.getColumnIndex(People.NAME); intphoneId=cursor.getColumnIndex(People.NUMBER);} 查看某个联系人,当然这里是ACTION_VIEW,如果为选择并返回action改为ACTION_PICK,当然处理intent时返回需要用到startActivityforResult UripersonUri=ContentUris.withAppendedId(People.CONTENT_URI,ID);//最后的ID参数为联系人Provider中的数据库BaseID,即哪一行 Intentintent=newIntent();intent.setAction(Intent.ACTION_VIEW);intent.setData(personUri);startActivity(intent); 22删除 uri=ContentUris.withAppendedId(People.CONTENT_URI,联系人id); intcount=activity.getContentResolver().delete(uri,null,null 23添加到联系人: ContentValuescv=newContentValues(); ArrayList<ContentProviderOperation>operationList=newArrayList<ContentProviderOperation>(); ContentProviderOperation.Builderbuilder=ContentProviderOperation.newInsert(RawContacts.CONTENT_URI); builder.withValues(cv); operationList.add(builder.build()); builder=ContentProviderOperation.newInsert(Data.CONTENT_URI); builder.withValueBackReference(StructuredName.RAW_CONTACT_ID,0); builder.withValue(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE); builder.withValue(StructuredName.DISPLAY_NAME,"自定义联系人名"); operationList.add(builder.build()); builder=ContentProviderOperation.newInsert(Data.CONTENT_URI); builder.withValueBackReference(Phone.RAW_CONTACT_ID,0); builder.withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE); builder.withValue(Phone.NUMBER,"联系人的phonenumber"); builder.withValue(Data.IS_PRIMARY,1); operationList.add(builder.build()); try{ getContentResolver().applyBatch(ContactsContract.AUTHORITY,operationList); }catch(RemoteExceptione){ e.printStackTrace(); }catch(OperationApplicationExceptione){ e.printStackTrace(); } 23选择一个图片 Intentintent=newIntent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(intent,0); 24调用Android设备的照相机,并设置拍照后存放位置 Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(newFile(Environment.getExternalStorageDirectory().getAbsolutePath()+"/cwj",android123+".jpg")));//存放位置为sdcard卡上cwj文件夹,文件名为android123.jpg格式 startActivityForResult(intent,0); 25在market上搜索指定packagename,比如搜索com.android123.cwj的写法如下 Uriuri=Uri.parse("market://search?q=pname:com.android123.cwj"); Intentintent=newIntent(Intent.ACTION_VIEW,uri);startActivity(intent); 26获取文件信息,并使用相对应软件打开 privatevoidopenFile(Filef) { Intentintent=newIntent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); Stringtype=getMIMEType(f); intent.setDataAndType(Uri.fromFile(f),type); startActivity(intent); } privateStringgetMIMEType(Filef){ Stringend=f.getName().substring(f.getName().lastIndexOf(".")+1,f.getName().length()).toLowerCase(); Stringtype=""; if(end.equals("mp3")||end.equals("aac")||end.equals("aac")||end.equals("amr")||end.equals("mpeg")||end.equals("mp4")) { type="audio"; } elseif(end.equals("jpg")||end.equals("gif")||end.equals("png")||end.equals("jpeg")) { type="image"; } else { type="*"; } type+="/*"; returntype; } --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- 现在开发中的功能需要直接跳转到拨号、联系人、短信界面等等,查找了很多资料,自己整理了一下。 1、跳转到拨号界面,代码如下: 1)直接拨打 IntentintentPhone=newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber)); startActivity(intentPhone); 2)跳转到拨号界面 Intentintent=newIntent(Intent.ACTION_DIAL,Uri.parse("tel:"+phoneNumber)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 2、跳转到联系人页面,使用一下代码: IntentintentPhone=newIntent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber)); startActivity(intentPhone); --------------------------------------------------------------- 3--------------------------------------------------------------- ---------------------------------------------------------------