|
1、啟動瀏覽器 1 Intent intent = new Intent(); 2 intent.setAction(Intent.ACTION_WEB_SEARCH); 3 //可以傳一個搜索關鍵字,會直接顯示搜索結果頁面。key是預定義的常量 4 // intent.putExtra(SearchManager.QUERY,"要搜索的內容"); 5 startActivity(intent); Intent.ACTION_WEB_SEARCH 匹配的動作是網(wǎng)頁/瀏覽器 1 Intent intent = new Intent(); 2 3 intent.setAction(Intent.ACTION_WEB_SEARCH); 也可以寫成這樣: 1 2 Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
2、啟動瀏覽器,轉到指定頁面 1 //網(wǎng)址必須寫全,不能省略協(xié)議http 2 Uri uri =Uri.parse("http://www.baidu.com"); 3 //必須要傳一個URI,才可以啟動瀏覽器 4 Intent intent = new Intent(Intent.ACTION_VIEW,uri); 5 startActivity(intent); Intent.ACTION_VIEW匹配的動作很多,是一個大類,包含了各種功能,必須要傳參數(shù),系統(tǒng)根據(jù)這些具體的參數(shù)才能判斷要啟動的程序(類型)。
3、啟動撥號程序 1 Intent intent = new Intent(); 2 intent.setAction(Intent.ACTION_DIAL); 3 startActivity(intent); ACTION_DIAL 匹配撥號程序。可以自動填寫要撥的號碼:
1 //手機號 2 Uri uri =Uri.parse("tel:137....."); 3 Intent intent = new Intent(Intent.ACTION_DIAL,uri); 4 startActivity(intent);
Uri參數(shù)可以寫在Intent的構造函數(shù)里,也可以setData()單獨寫: 1 Intent intent = new Intent(Intent.ACTION_DIAL); 2 //傳一個Uri類型的參數(shù) 3 intent.setData(Uri.parse("tel:137.....")); //參數(shù)為Uri類型 4 startActivity(intent);
如果是putExtra,只能單獨寫: 1 intent.putExtra(String key,String value);
4、發(fā)短信 方式一: 1 Intent intent = new Intent(Intent.ACTION_VIEW); 2 //可以設置短信的默認內容??蛇x 3 intent.putExtra("sms_body", "短信內容"); 4 //具體細分VIEW的action為發(fā)短信 5 intent.setType("vnd.android-dir/mms-sms"); 6 startActivity(intent); 此方式不能設置默認收件人
方式二: 1 //默認收件人 2 Uri uri =Uri.parse("smsto:137782323"); 3 Intent it = new Intent(Intent.ACTION_SENDTO, uri); 4 it.putExtra("sms_body", "默認的短信內容"); 5 startActivity(it);
5、發(fā)郵件 1 //默認收件人 2 Uri uri =Uri.parse("mailto:xxx@abc.com"); 3 Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 4 startActivity(intent); 注意:如果手機上沒有對應的該類應用,又沒有寫對應的處理代碼,會閃退。比如發(fā)送郵件,但沒有安裝郵箱,會閃退。 應該先檢查手機上是否已安裝該類應用,如果沒有,給出提示,或者打開瀏覽器,轉到該類常用應用的下載頁面。
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 更新軟件時,有時需要先卸載原來的版本,再下載安裝新版本。
9、從相冊選取圖片 1 Intent intent = new Intent(); 2 //所有圖片格式 3 intent.setType("image/*"); 4 intent.setAction(Intent.ACTION_GET_CONTENT); 5 //要設置請求碼 6 startActivityForResult(intent, 1);
10、選擇某類應用 1 Intent intent = new Intent(Intent.ACTION_SEND); 2 intent.setType("text/plain"); 3 intent.putExtra(Intent.EXTRA_TITLE, "標題信息"); 4 intent.putExtra(Intent.EXTRA_SUBJECT, "主題信息"); 5 intent.putExtra(Intent.EXTRA_TEXT, "內容信息"); 6 startActivity(intent); 會彈出對話框列出所有滿足該action的的應用,點擊某項會打開該應用。預定義的action值分類很亂,所以往往會列出很多項,其中一些我們并不想要。
有時候我們并不想全部列出,只想列出其中部分,可以這樣: 1 Intent it = new Intent(Intent.ACTION_SEND); 2 it.setType("text/plain"); 3 /* 4 首先我們通過getPackageManager()獲取包管理器PackageManager對象。PackageManger的主要職責是管理應用程序包。 5 通過PackageManager,我們就可以獲取應用程序信息,PackageManager獲取的信息即來自AndroidManifest.XML。 6 PageManager對象有個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 針對每個ResolveInfo對象,通過activityInfo屬性獲取ActivityInfo對象, 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 //然后調用ceateChooser創(chuàng)建一個ACTION_CHOOSER Intent,用第一個備選Intent作為target Intent(第一個參數(shù)) 29 Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "選擇分享到:"); 30 //通過putExtra設置Intent.EXTRA_INITIAL_INTENTS為其他備選Intent 31 chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[] {})); 32 startActivity(chooserIntent); 33 } 只會列出我們想要列出的項。通常用這種方式。
下一篇隨筆寫 分享功能的實現(xiàn)。
12、打開照相機 1 Intent intent = new Intent("android.media.action.STILL_IMAGE_CAMERA"); 2 startActivity(intent);
13、打開錄音機 1 Intent mi = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); 2 startActivity(mi);
|
|
|