1、啟動(dòng)瀏覽器 1 Intent intent = new Intent(); 2 intent.setAction(Intent.ACTION_WEB_SEARCH); 3 //可以傳一個(gè)搜索關(guān)鍵字,會(huì)直接顯示搜索結(jié)果頁(yè)面。key是預(yù)定義的常量 4 // intent.putExtra(SearchManager.QUERY,"要搜索的內(nèi)容"); 5 startActivity(intent); Intent.ACTION_WEB_SEARCH 匹配的動(dòng)作是網(wǎng)頁(yè)/瀏覽器 1 Intent intent = new Intent(); 2 3 intent.setAction(Intent.ACTION_WEB_SEARCH); 也可以寫成這樣: 1 2 Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
2、啟動(dòng)瀏覽器,轉(zhuǎn)到指定頁(yè)面 1 //網(wǎng)址必須寫全,不能省略協(xié)議http 2 Uri uri =Uri.parse("http://www.baidu.com"); 3 //必須要傳一個(gè)URI,才可以啟動(dòng)瀏覽器 4 Intent intent = new Intent(Intent.ACTION_VIEW,uri); 5 startActivity(intent); Intent.ACTION_VIEW匹配的動(dòng)作很多,是一個(gè)大類,包含了各種功能,必須要傳參數(shù),系統(tǒng)根據(jù)這些具體的參數(shù)才能判斷要啟動(dòng)的程序(類型)。
3、啟動(dòng)撥號(hào)程序 1 Intent intent = new Intent(); 2 intent.setAction(Intent.ACTION_DIAL); 3 startActivity(intent); ACTION_DIAL 匹配撥號(hào)程序??梢宰詣?dòng)填寫要撥的號(hào)碼:
1 //手機(jī)號(hào) 2 Uri uri =Uri.parse("tel:137....."); 3 Intent intent = new Intent(Intent.ACTION_DIAL,uri); 4 startActivity(intent);
Uri參數(shù)可以寫在Intent的構(gòu)造函數(shù)里,也可以setData()單獨(dú)寫: 1 Intent intent = new Intent(Intent.ACTION_DIAL); 2 //傳一個(gè)Uri類型的參數(shù) 3 intent.setData(Uri.parse("tel:137.....")); //參數(shù)為Uri類型 4 startActivity(intent);
如果是putExtra,只能單獨(dú)寫: 1 intent.putExtra(String key,String value);
4、發(fā)短信 方式一: 1 Intent intent = new Intent(Intent.ACTION_VIEW); 2 //可以設(shè)置短信的默認(rèn)內(nèi)容。可選 3 intent.putExtra("sms_body", "短信內(nèi)容"); 4 //具體細(xì)分VIEW的action為發(fā)短信 5 intent.setType("vnd.android-dir/mms-sms"); 6 startActivity(intent); 此方式不能設(shè)置默認(rèn)收件人
方式二: 1 //默認(rèn)收件人 2 Uri uri =Uri.parse("smsto:137782323"); 3 Intent it = new Intent(Intent.ACTION_SENDTO, uri); 4 it.putExtra("sms_body", "默認(rèn)的短信內(nèi)容"); 5 startActivity(it);
5、發(fā)郵件 1 //默認(rèn)收件人 2 Uri uri =Uri.parse("mailto:xxx@abc.com"); 3 Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 4 startActivity(intent); 注意:如果手機(jī)上沒有對(duì)應(yīng)的該類應(yīng)用,又沒有寫對(duì)應(yīng)的處理代碼,會(huì)閃退。比如發(fā)送郵件,但沒有安裝郵箱,會(huì)閃退。 應(yīng)該先檢查手機(jī)上是否已安裝該類應(yīng)用,如果沒有,給出提示,或者打開瀏覽器,轉(zhuǎn)到該類常用應(yīng)用的下載頁(yè)面。
6、播放多媒體 1 Intent intent = new Intent(Intent.ACTION_VIEW); 2 Uri uri =Uri.parse("mnt/sdcard/1.mp3");
7、安裝apk 1 Intent intent = new Intent(Intent.ACTION_VIEW); 2 //apk路徑 3 Uri uri=Uri.parse("mnt/sdcard/qqmail.apk");
8、卸載apk 更新軟件時(shí),有時(shí)需要先卸載原來的版本,再下載安裝新版本。
9、從相冊(cè)選取圖片 1 Intent intent = new Intent(); 2 //所有圖片格式 3 intent.setType("image/*"); 4 intent.setAction(Intent.ACTION_GET_CONTENT); 5 //要設(shè)置請(qǐng)求碼 6 startActivityForResult(intent, 1);
10、選擇某類應(yīng)用 1 Intent intent = new Intent(Intent.ACTION_SEND); 2 intent.setType("text/plain"); 3 intent.putExtra(Intent.EXTRA_TITLE, "標(biāo)題信息"); 4 intent.putExtra(Intent.EXTRA_SUBJECT, "主題信息"); 5 intent.putExtra(Intent.EXTRA_TEXT, "內(nèi)容信息"); 6 startActivity(intent); 會(huì)彈出對(duì)話框列出所有滿足該action的的應(yīng)用,點(diǎn)擊某項(xiàng)會(huì)打開該應(yīng)用。預(yù)定義的action值分類很亂,所以往往會(huì)列出很多項(xiàng),其中一些我們并不想要。
有時(shí)候我們并不想全部列出,只想列出其中部分,可以這樣: 1 Intent it = new Intent(Intent.ACTION_SEND); 2 it.setType("text/plain"); 3 /* 4 首先我們通過getPackageManager()獲取包管理器PackageManager對(duì)象。PackageManger的主要職責(zé)是管理應(yīng)用程序包。 5 通過PackageManager,我們就可以獲取應(yīng)用程序信息,PackageManager獲取的信息即來自AndroidManifest.XML。 6 PageManager對(duì)象有個(gè)queryIntentActivities()方法,用來根據(jù)Intent查詢可用的activity信息,該方法返回ResolveInfo集合。 7 */ 8 List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(it, 0); 9 if (!resInfo.isEmpty()){ 10 List<Intent> targetedShareIntents = new ArrayList<Intent>(); 11 /* 12 針對(duì)每個(gè)ResolveInfo對(duì)象,通過activityInfo屬性獲取ActivityInfo對(duì)象, 13 根據(jù)ActivityInfo的packageName獲取所屬的包名稱,并判斷名稱是否包含email、bluetooth、mms、weibo,如果包含,則添加到備選集合中。 14 */ 15 for (ResolveInfo info : resInfo) { 16 ActivityInfo activityInfo = info.activityInfo; 17 if (activityInfo.packageName.contains("email") || activityInfo.packageName.contains("bluetooth") 18 || activityInfo.packageName.contains("mms") || activityInfo.packageName.contains("weibo")) { 19 Intent targeted = new Intent(Intent.ACTION_SEND); 20 targeted.setType("text/plain"); 21 targeted.putExtra(Intent.EXTRA_TITLE, "title"); 22 targeted.putExtra(Intent.EXTRA_SUBJECT, "subject"); 23 targeted.putExtra(Intent.EXTRA_TEXT, "content"); 24 targeted.setPackage(activityInfo.packageName); 25 targetedShareIntents.add(targeted); 26 } 27 } 28 //然后調(diào)用ceateChooser創(chuàng)建一個(gè)ACTION_CHOOSER Intent,用第一個(gè)備選Intent作為target Intent(第一個(gè)參數(shù)) 29 Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "選擇分享到:"); 30 //通過putExtra設(shè)置Intent.EXTRA_INITIAL_INTENTS為其他備選Intent 31 chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[] {})); 32 startActivity(chooserIntent); 33 } 只會(huì)列出我們想要列出的項(xiàng)。通常用這種方式。
下一篇隨筆寫 分享功能的實(shí)現(xiàn)。
12、打開照相機(jī) 1 Intent intent = new Intent("android.media.action.STILL_IMAGE_CAMERA"); 2 startActivity(intent);
13、打開錄音機(jī) 1 Intent mi = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); 2 startActivity(mi);
|
|