生活随笔
收集整理的這篇文章主要介紹了
Intent跳转到系统应用中的拨号界面、联系人界面、短信界面及其他
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?現(xiàn)在開發(fā)中的功能需要直接跳轉(zhuǎn)到撥號、聯(lián)系人、短信界面等等,查找了很多資料,自己整理了一下。
?
? ? ? ? ?首先,我們先看撥號界面,代碼如下:
?
[java]?view plaincopy
Intent?intent?=new?Intent();??????????????intent.setAction("android.intent.action.CALL_BUTTON");??????????????startActivity(intent);?? ?
和? ??
[java]?view plaincopy
Uri?uri?=?Uri.parse("tel:xxxxxx");???Intent?intent?=?new?Intent(Intent.ACTION_DIAL,?uri);?????startActivity(intent);?? 兩者都行? ?
但是如果是跳轉(zhuǎn)到應(yīng)用,使用一下代碼:
?
[java]?view plaincopy
Intent?intent=?new?Intent("android.intent.action.DIAL");???intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity");?? ?
?
? ? ? ? ? 到通話記錄界面:
?
[java]?view plaincopy
Intent?intent=new?Intent();??intent.setAction(Intent.ACTION_CALL_BUTTON);??startActivity(intent);?? ?
?
? ? ? ? ??? 到聯(lián)系人界面:
?
[java]?view plaincopy
Intent?intent?=?new?Intent();???intent.setAction(Intent.ACTION_VIEW);???intent.setData(Contacts.People.CONTENT_URI);???startActivity(intent);??? ?
同理,到應(yīng)用:
?
[java]?view plaincopy
Intent?intent=?new?Intent("com.android.contacts.action.LIST_STREQUENT");???intent.setClassName("com.android.contacts","com.android.contacts.DialtactsActivity");??
?
? ? ? ? ? 調(diào)用聯(lián)系人界面:
?
[java]?view plaincopy
Intent?intent?=?new?Intent();???intent.setAction(Intent.ACTION_PICK);???intent.setData(Contacts.People.CONTENT_URI);???startActivity(intent);???
? ? ? ? ? 插入聯(lián)系人
[java]?view plaincopy
Intent?intent=new?Intent(Intent.ACTION_EDIT,Uri.parse("content://com.android.contacts/contacts/"+"1"));??startActivity(intent);?? ? ? ? ? ? ? ?到聯(lián)系人列表界面 ??? ?
?
[java]?view plaincopy
Intent?intent?=?new?Intent(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);??
?
? ??到短信界面:
?
?
[java]?view plaincopy
Intent?intent?=?new?Intent(Intent.ACTION_VIEW);??????????????????intent.setType("vnd.android-dir/mms-sms");??????????????????startActivity(intent);?? 到應(yīng)用:
?
[java]?view plaincopy
Intent?intent?=?new?Intent("android.intent.action.CONVERSATION");??startActivity(intent);?? ?
?
以下是在網(wǎng)上找到的其他方法:
?
?
?
1.從google搜索內(nèi)容?
[java]?view plaincopy
Intent?intent?=?new?Intent();???intent.setAction(Intent.ACTION_WEB_SEARCH);???intent.putExtra(SearchManager.QUERY,"searchString")???startActivity(intent);???
2.瀏覽網(wǎng)頁?
[java]?view plaincopy
Uri?uri?=?Uri.parse("http://www.google.com");???Intent?it???=?new?Intent(Intent.ACTION_VIEW,uri);???startActivity(it);???
3.顯示地圖?
[java]?view plaincopy
Uri?uri?=?Uri.parse("geo:38.899533,-77.036476");???Intent?it?=?new?Intent(Intent.Action_VIEW,uri);???startActivity(it);???
4.路徑規(guī)劃?
[java]?view plaincopy
Uri?uri?=?Uri.parse("http://maps.google.com/maps?f=dsaddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");???Intent?it?=?new?Intent(Intent.ACTION_VIEW,URI);???startActivity(it);??
?
5.撥打電話?
[java]?view plaincopy
Uri?uri?=?Uri.parse("tel:xxxxxx");???Intent?it?=?new?Intent(Intent.ACTION_DIAL,?uri);?????startActivity(it);?? 和
[java]?view plaincopy
uri?=?Uri.parse("tel:"+number);????????????????????intent?=?new?Intent(Intent.ACTION_CALL,uri);????????????????????startActivity(intent);???
其中不同自己試驗一下就知道了。?
6.調(diào)用發(fā)短信的程序?
?
[java]?view plaincopy
Intent?it?=?new?Intent(Intent.ACTION_VIEW);?????it.putExtra("sms_body",?"The?SMS?text");?????it.setType("vnd.android-dir/mms-sms");?????startActivity(it);??
和?
[java]?view plaincopy
uri?=?Uri.parse("smsto:"+要發(fā)送短信的對方的number);????????????????????intent?=?new?Intent(Intent.ACTION_SENDTO,uri);????????????????????startActivity(intent);???? 和
[java]?view plaincopy
mIntent?=?new?Intent(Intent.ACTION_VIEW);????????????mIntent.putExtra("address",?c.getString(c.getColumnIndex(column)));????????????mIntent.setType("vnd.android-dir/mms-sms");????????????startActivity(mIntent);????
7.發(fā)送短信?
[java]?view plaincopy
Uri?uri?=?Uri.parse("smsto:0800000123");?????Intent?it?=?new?Intent(Intent.ACTION_SENDTO,?uri);?????it.putExtra("sms_body",?"The?SMS?text");?????startActivity(it);???String?body="this?is?sms?demo";???Intent?mmsintent?=?new?Intent(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);<span?style="font-family:Simsun;white-space:?normal;?background-color:?rgb(255,?255,?255);">?</span>??
8.發(fā)送彩信?
[java]?view plaincopy
Uri?uri?=?Uri.parse("content://media/external/images/media/23");?????Intent?it?=?new?Intent(Intent.ACTION_SEND);?????it.putExtra("sms_body",?"some?text");?????it.putExtra(Intent.EXTRA_STREAM,?uri);?????it.setType("image/png");?????startActivity(it);???StringBuilder?sb?=?new?StringBuilder();???sb.append("file://");???sb.append(fd.getAbsoluteFile());???Intent?intent?=?new?Intent(Intent.ACTION_SENDTO,?Uri.fromParts("mmsto",?number,?null));???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.發(fā)送Email?
[java]?view plaincopy
Uri?uri?=?Uri.parse("mailto:xxx@abc.com");???Intent?it?=?new?Intent(Intent.ACTION_SENDTO,?uri);???startActivity(it);???Intent?it?=?new?Intent(Intent.ACTION_SEND);?????it.putExtra(Intent.EXTRA_EMAIL,?"me@abc.com");?????it.putExtra(Intent.EXTRA_TEXT,?"The?email?body?text");?????it.setType("text/plain");?????startActivity(Intent.createChooser(it,?"Choose?Email?Client"));???Intent?it=new?Intent(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,?"The?email?body?text");???????it.putExtra(Intent.EXTRA_SUBJECT,?"The?email?subject?text");???????it.setType("message/rfc822");???????startActivity(Intent.createChooser(it,?"Choose?Email?Client"));???????Intent?it?=?new?Intent(Intent.ACTION_SEND);?????it.putExtra(Intent.EXTRA_SUBJECT,?"The?email?subject?text");?????it.putExtra(Intent.EXTRA_STREAM,?"file:///sdcard/mysong.mp3");?????sendIntent.setType("audio/mp3");?????startActivity(Intent.createChooser(it,?"Choose?Email?Client"));???
10.播放多媒體???
[java]?view plaincopy
Intent?it?=?new?Intent(Intent.ACTION_VIEW);???Uri?uri?=?Uri.parse("file:///sdcard/song.mp3");???it.setDataAndType(uri,?"audio/mp3");???startActivity(it);???Uri?uri?=?Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI,?"1");?????Intent?it?=?new?Intent(Intent.ACTION_VIEW,?uri);?????startActivity(it);???
11.uninstall apk?
[java]?view plaincopy
Uri?uri?=?Uri.fromParts("package",?strPackageName,?null);?????Intent?it?=?new?Intent(Intent.ACTION_DELETE,?uri);?????startActivity(it);???
12.install apk?
[java]?view plaincopy
Uri?installUri?=?Uri.fromParts("package",?"xxx",?null);???returnIt?=?new?Intent(Intent.ACTION_PACKAGE_ADDED,?installUri);???
13. 打開照相機?
[java]?view plaincopy
<1>Intent?i?=?new?Intent(Intent.ACTION_CAMERA_BUTTON,?null);?????????????this.sendBroadcast(i);???????<2>long?dateTaken?=?System.currentTimeMillis();????????????String?name?=?createName(dateTaken)?+?".jpg";????????????fileName?=?folder?+?name;????????????ContentValues?values?=?new?ContentValues();????????????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);????????????Uri?photoUri?=?getContentResolver().insert(??????????????????????MediaStore.Images.Media.EXTERNAL_CONTENT_URI,?values);?????????????????????????Intent?inttPhoto?=?new?Intent(MediaStore.ACTION_IMAGE_CAPTURE);????????????inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT,?photoUri);????????????startActivityForResult(inttPhoto,?10);???
14.從gallery選取圖片?
??
[java]?view plaincopy
Intent?i?=?new?Intent();???????????i.setType("image/*");???????????i.setAction(Intent.ACTION_GET_CONTENT);???????????startActivityForResult(i,?11);???
15. 打開錄音機?
[java]?view plaincopy
Intent?mi?=?new?Intent(Media.RECORD_SOUND_ACTION);????????????startActivity(mi);??? 16.顯示應(yīng)用詳細(xì)列表 ?? ??
[java]?view plaincopy
Uri?uri?=?Uri.parse("market://details?id=app_id");??????????Intent?it?=?new?Intent(Intent.ACTION_VIEW,?uri);??????????startActivity(it);??????????
剛才找app id未果,結(jié)果發(fā)現(xiàn)用package name也可以?Uri uri = Uri.parse("market://details?id=<packagename>");?
這個簡單多了?
17尋找應(yīng)用 ?? ??
[java]?view plaincopy
Uri?uri?=?Uri.parse("market://search?q=pname:pkg_name");??????????Intent?it?=?new?Intent(Intent.ACTION_VIEW,?uri);??????????startActivity(it);???
18打開聯(lián)系人列表?
?? ?? ??
[java]?view plaincopy
<1>??????????????????????Intent?i?=?new?Intent();????????????i.setAction(Intent.ACTION_GET_CONTENT);????????????i.setType("vnd.android.cursor.item/phone");????????????startActivityForResult(i,?REQUEST_TEXT);??? [java]?view plaincopy
<2>????????????Uri?uri?=?Uri.parse("content://contacts/people");????????????Intent?it?=?new?Intent(Intent.ACTION_PICK,?uri);????????????startActivityForResult(it,?REQUEST_TEXT);???
19 打開另一程序?
[java]?view plaincopy
Intent?i?=?new?Intent();????????????ComponentName?cn?=?new?ComponentName("com.yellowbook.android2",??????????????????????"com.yellowbook.android2.AndroidSearch");????????????i.setComponent(cn);????????????i.setAction("android.intent.action.MAIN");????????????startActivityForResult(i,?RESULT_OK);??? ?
20 添加到短信收件箱
ContentValues?cv?=?new?ContentValues();??????????????????????cv.put("type",?"1");???cv.put("address","短信地址");??cv.put("body",?"短信內(nèi)容");???getContentResolver().insert(Uri.parse("content://sms/inbox"),?cv);??? ?
?
21 從sim卡或者聯(lián)系人中查詢
Cursor?cursor;??????????Uri?uri;??????????if?(type?==?1)?{??????????????Intent?intent?=?new?Intent();??????????????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())?{ ??int?peopleId?=?cursor.getColumnIndex(People._ID);?int?nameId?=?cursor.getColumnIndex(People.NAME);??int?phoneId?=?cursor.getColumnIndex(People.NUMBER);}? ?
查看某個聯(lián)系人,當(dāng)然這里是ACTION_VIEW,如果為選擇并返回action改為ACTION_PICK,當(dāng)然處理intent時返回需要用到?startActivityforResult?
Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, ID);//最后的ID參數(shù)為聯(lián)系人Provider中的數(shù)據(jù)庫BaseID,即哪一行?
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(personUri); startActivity(intent);?
?
?
22 刪除
uri?=?ContentUris.withAppendedId(People.CONTENT_URI,?聯(lián)系人id);??????????int?count?=?activity.getContentResolver().delete(uri,?null,?null);?? ?
23 添加到聯(lián)系人:
ContentValues?cv?=?new?ContentValues();??????????????????????ArrayList<ContentProviderOperation>?operationList?=?new?ArrayList<ContentProviderOperation>();??????????????????????ContentProviderOperation.Builder?builder?=?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,?"自定義聯(lián)系人名");??????????????????????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,?"聯(lián)系人的phonenumber");??????????????????????builder.withValue(Data.IS_PRIMARY,?1);??????????????????????operationList.add(builder.build());??????????????????????try?{??????????????????????????getContentResolver().applyBatch(ContactsContract.AUTHORITY,?operationList);??????????????????????}?catch?(RemoteException?e)?{??????????????????????????e.printStackTrace();??????????????????????}?catch?(OperationApplicationException?e)?{??????????????????????????e.printStackTrace();??????????????????????}?? ?23?選擇一個圖片?
?
[java]?view plaincopy
Intent?intent?=?new?Intent(Intent.ACTION_GET_CONTENT);???intent.addCategory(Intent.CATEGORY_OPENABLE);???intent.setType("image/*");???startActivityForResult(intent,?0);??? ?
?
24 調(diào)用Android設(shè)備的照相機,并設(shè)置拍照后存放位置
?
[java]?view plaincopy
Intent?intent?=?new?Intent(MediaStore.ACTION_IMAGE_CAPTURE);??intent.putExtra(MediaStore.EXTRA_OUTPUT,?Uri.fromFile(new?File(Environment?.getExternalStorageDirectory().getAbsolutePath()+"/cwj",?android123?+?".jpg")));?startActivityForResult(intent,?0);??
25?在market上搜索指定package name,比如搜索com.android123.cwj的寫法如下?
?
?
[java]?view plaincopy
Uri?uri?=?Uri.parse("market://search?q=pname:com.android123.cwj");???Intent?intent?=?new?Intent(Intent.ACTION_VIEW,?uri);?startActivity(intent);?? ?
?
26 獲取文件信息,并使用相對應(yīng)軟件打開
?
[java]?view plaincopy
private?void?openFile(File?f)?????{???????Intent?intent?=?new?Intent();???????intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);???????intent.setAction(android.content.Intent.ACTION_VIEW);???????String?type?=?getMIMEType(f);???????intent.setDataAndType(Uri.fromFile(f),?type);???????startActivity(intent);?????}????????private?String?getMIMEType(File?f){???????String?end?=?f???????????.getName()???????????.substring(f.getName().lastIndexOf(".")?+?1,???????????????f.getName().length()).toLowerCase();???????String?type?=?"";???????if?(end.equals("mp3")?||?end.equals("aac")?||?end.equals("aac")???????????||?end.equals("amr")?||?end.equals("mpeg")???????????||?end.equals("mp4"))???????{?????????type?=?"audio";???????}?else?if?(end.equals("jpg")?||?end.equals("gif")???????????||?end.equals("png")?||?end.equals("jpeg"))???????{?????????type?=?"image";???????}?else???????{?????????type?=?"*";???????}???????type?+=?"/*";???????return?type;?????} ??
轉(zhuǎn)載于:https://www.cnblogs.com/kevincode/p/3837878.html
總結(jié)
以上是生活随笔為你收集整理的Intent跳转到系统应用中的拨号界面、联系人界面、短信界面及其他的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。