小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Android 使用預定義的action值啟動系統(tǒng)應用

 路人甲Java 2022-01-13

 

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)頁/瀏覽器



如果是這樣的Intent:
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"); 
3   //不能缺省這句代碼
4   intent.setDataAndType(uri,"audio/mp3");
5   startActivity(intent);

 

 

 

7、安裝apk

1   Intent intent = new Intent(Intent.ACTION_VIEW);
2   //apk路徑
3  Uri uri=Uri.parse("mnt/sdcard/qqmail.apk");
4  //參數(shù):Uri類型的apk路徑,String類型的數(shù)據(jù)類型(固定寫法)
5  intent.setDataAndType(uri,"application/vnd.android.package-archive");
6  startActivity(intent);

 

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);

 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多