A. 如何在android中調用瀏覽器打開網頁
在Android中可以調用自帶的瀏覽器,或者指定一個瀏覽器來打開一個鏈接。只需要傳入一個uri,可以是鏈接地址。
啟動android默認瀏覽器
在Android程序中我們可以通過發送隱式Intent來啟動系統默認的瀏覽器。如果手機本身安裝了多個瀏覽器而又沒有設置默認瀏覽器的話,系統將讓用戶選擇使用哪個瀏覽器來打開連接。

用uc瀏覽器打開只需要把打開qq瀏覽器那行代碼注釋掉,然後打開uc瀏覽器那行代碼取消注視就行。
B. 請android高手幫忙!
使用照相機的方法:
//在監聽事件中加入如下代碼
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory()+"/","temp.jpg")));
startActivityForResult(intent, reqCode_CAMERA);// reqCode_CAMERA是一個一自己設定的值,用於在onActivityResult方法中判斷是哪一個activity返回的
再重寫onActivityResult方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == reqCode_CAMERA && resultCode== RESULT_OK){
////這里是直接隱式啟動系統圖片預覽程序
// Intent intent = new Intent();
// intent.setAction(Intent.ACTION_VIEW);
//// uri指向用戶選擇的那個圖片
// Uri uri = data.getData();
// intent.setData(uril);
// startActivity(intent);
// Uri uri = data.getData();
// Cursor cursor = getContentResolver().query(uri, null, null, null, null);
// if(cursor!=null&&cursor.moveToFirst()){
// String path = cursor.getString(1);
// Bitmap bm = BitmapFactory.decodeFile(path);
// iv.setImageBitmap(bm);
// }
// iv.setImageURI(uri);
//也可以用這里代碼打開圖片裁剪
Intent intent = new Intent();
intent.setAction("com.android.camera.action.CROP");
intent.setType("image/*");
intent.putExtra("data", data.getExtras().getParcelable("data"));
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);//默認圖片剪裁起始位置x值
intent.putExtra("aspectY", 1);//默認圖片剪裁起始位置y值
intent.putExtra("outputX", 128);//默認圖片剪裁終止位置x值
intent.putExtra("outputY", 128);//默認圖片剪裁終止位置x值
intent.putExtra("return-data", true);
startActivityForResult(intent, reqCode_Zoom);
}//這里是處理剪裁圖片返回後的處理,直接調用ImageView顯示了,你可以根據你的需要修改
else if(requestCode==reqCode_Zoom){
Bitmap bitmap = data.getExtras().getParcelable("data");
iv.setImageBitmap(bitmap);
}
上傳本地圖片方法:
按鈕名.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 隱式啟動系統相冊程序
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setDataAndType(Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(intent, reqCode_PICK);// reqCode和上面一樣自己定義,但是不要重復了
}
});
再在onActivityResult方法添加一個"elseif(requestCode == reqCode_PICK && resultCode== RESULT_OK)"條件,方法體直接參考上面,就是在剪裁那裡把「intent.putExtra("data", data.getExtras().getParcelable("data"));」換為「intent.setDataAndType(data.getData(), "image/*");」就可以了。
C. Android APP調起另外一個APP並傳值
第一種:
第二種:
setClassName內部也是調用的setComponent。
調用方:
被調用方在AndroidManifest的Activity中添加自定義action:
被調用方數據接收:
第一銀敗種:
調用方通過點擊H5網頁上按鈕
這種方法存在著弊端就是沒辦法判斷手機上是否安裝APP時,更適合打開自己APP中Activity。一般建議js與java進行交互調用原生的方法: WebViewJavascriptBridge 使用簡單方便,並且避免了一些js腳本注入漏洞。
第二種:隱式調用
被調用方在AndroidManifest的Activity中添加自定義action:
被調用Activity中數據接收:
注意: 這兩種方式只適合針對某個頁面,都只是在自己應用中跳轉第三方應用,並不是真正的喚醒,比如應用A已經在後台存在了,應用B調用以上兩種方式後,只是在應用B中重新打開了一個應用A,此時的應用A是相當與存在兩個,一前搏基個是在後台單獨存在,一個是依存應用B存在,是添加到應用B的棧中的,當點擊A頁面裡面的跳轉按鈕時才真正調起跳轉到A應慧謹用。
D. android 為什麼採用intent 進行數據交互
Android系統的一個重要特性就是一個應用程序可以調用另外一個應用程序來完成用戶的請求動作。比如你的應用程序需要給用戶顯示一個地理位置在地圖上,你不必在你的應用程序中實現地圖功能,而是創建一個顯示這個地理位置的Intent,發送出去,Android系統會啟動那些可以處理這個請求的應用程序。還比如:你用網路雲盤下載了一個pdf文檔,你在點擊打開這個文檔的時候網路雲盤是無法打開的,但是也許你系統上安裝有其他的能打開pdf文檔的閱讀器,這個時候就會彈出一個對話框,列舉了可以打開pdf文檔的應用程序,你可以自由選擇一個應用程序打開你下載的文檔。
使用隱式Intent:
隱式Intent不會指明要啟動的組件名稱,而是聲明執行的動作,動作指定了你想要做什麼事情,比如顯示(view),編輯(edit),發送(send),獲取一些東西(get something)等。Intent經常會附帶一些數據,比如你要查看的地址,發送郵件的內容等。數據形式依賴於你想要做什麼事情,數據可以是一個Uri,也可以是其他數據類型(基本數據類型或者對象)之一。數據不是必須的,你的Intent中可以不包含data。
E. android 顯示intent和隱士inent的區別
以下內容為CSDN上(網名:yuan1590)對安卓顯示意圖和隱身意圖的總結(ps前人種樹,樹,後人乘涼,所以我就粘過來了,希望幫到您):
1. Intent
Android基本的設計理念是鼓勵減少組件間的耦合,因此Android提供了Intent (意圖) ,
Intent提供了一種通用的消息系統,它允許在你的應用程序與其它的應用程序間傳遞 Intent 來執行動作和產生事件。
使用 Intent 可以激活 Android 應用的三個核心組件:活動(Activity)、服務(Service)和廣播接收器(BroadcastReceiver)。
2. 顯式意圖、隱式意圖
Intent可以劃分成顯式意圖和隱式意圖。
顯式意圖:調用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明確指定了組件名的Intent為顯式意圖,顯式意圖明確指定了Intent應該傳遞給哪個組件。
如: 在 MainActicity 中打開一個新的 Acticity -- OtherActivity
1. Intent intent = new Intent();
2. intent.setComponent(new ComponentName(MainActivity.this, OtherActivity.class));
3. 第二行代碼可以更換為:intent.setClass(MainActivity.this, OtherActivity.class);
4. 也可以使用構造器來指定組件: Intent intent = new Intent(MainActivity.this, OtherActivity.class)
三種 「顯式意圖」 指定方式等價
隱式意圖:沒有明確指定組件名的Intent為隱式意圖。
Android系統會根據隱式意圖中設置的動作(action)、類別(category)、數據(data: URI和數據類型)找到最合適的組件來處理這個意圖
例如撥打電話的意圖:
Uri uri = Uri.parse("tel:" + phoneCode);
Intent intent = new Intent(Intent.ACTION_CALL, uri);
對於隱式意圖,Android是怎樣尋找到這個最合適的組件呢?記的前面我們在定義活動時,指定了一個intent-filter,Intent Filter(意圖過濾器)其實就是用來匹配隱式Intent的,當一個意圖對象被一個意圖過濾器進行匹配測試時,只有三個方面會被參考到:動作、數據(URI以及數據類型)和類別。
動作測試(Action test)
一個意圖對象只能指定一個動作名稱,而一個過濾器可能列舉多個動作名稱。如果意圖對象或過濾器沒有指定任何動作,結果將如下:
+ 如果過濾器沒有指定任何動作,那麼將阻塞所有的意圖,因此所有的意圖都會測試失敗。沒有意圖能夠通過這個過濾器。
<intent-filter><!-- 空的 --></intent-filter>
+ 另一方面,只要過濾器包含至少一個動作,一個沒有指定動作的意圖對象自動通過這個測試
類別測試(Category test)
對於一個能夠通過類別匹配測試的意圖,意圖對象中的類別必須匹配過濾器中的類別。這個過濾器可以列舉另外的類別,但它不能遺漏在這個意圖中的任何類別。
原則上一個沒有類別的意圖對象應該總能夠通過匹配測試,而不管過濾器里有什麼。大部分情況下這個是對的。
但有一個例外,Android把所有傳給startActivity()的隱式意圖當作他們包含至少一個類別:"android.intent.category.DEFAULT" (CATEGORY_DEFAULT常量)。
因此自定義 Activity 的時候,不要以為光定義一個 action 就夠了。這樣用 startActivity() 來激活這個 Activity 的時候將一直報錯。
原因就是,他內部要求去匹配 android.intent.category.DEFAULT 這個類別。
因此,想要接收隱式意圖的活動必須在它們的意圖過濾器中包含"android.intent.category.DEFAULT"。
(帶"android.intent.action.MAIN"和"android.intent.category.LAUNCHER"設置的過濾器是例外)
數據測試(Data test)
當一個意圖對象中的URI被用來和一個過濾器中的URI比較時,比較的是URI的各個組成部分。
例如,如果過濾器僅指定了一個scheme,所有該scheme的URIs都能夠和這個過濾器相匹配;
如果過濾器指定了一個scheme、主機名但沒有路經部分,所有具有相同scheme和主機名的URIs都可以和這個過濾器相匹配,而不管它們的路經;
如果過濾器指定了一個scheme、主機名和路經,只有具有相同scheme、主機名和路經的URIs才可以和這個過濾器相匹配。
當然,一個過濾器中的路徑規格可以包含通配符,這樣只需要部分匹配即可。
數據測試同時比較意圖對象和過濾器中指定的URI和數據類型。規則如下:
a. 一個既不包含URI也不包含數據類型的意圖對象僅在過濾器也同樣沒有指定任何URIs和數據類型的情況下才能通過測試。
b. 一個包含URI但沒有數據類型的意圖對象僅在它的URI和一個同樣沒有指定數據類型的過濾器里的URI匹配時才能通過測試。
這通常發生在類似於mailto:和tel:這樣的URIs上:它們並不引用實際數據。
c. 一個包含數據類型但不包含URI的意圖對象僅在這個過濾器列舉了同樣的數據類型而且也沒有指定一個URI的情況下才能通過測試。
d. 一個同時包含URI和數據類型(或者可從URI推斷出數據類型)的意圖對象可以通過測試,如果它的類型和過濾器中列舉的類型相匹配的話。
如果它的URI和這個過濾器中的一個URI相匹配或者它有一個內容content:或者文件file: URI而且這個過濾器沒有指定一個URI,那麼它也能通過測試。
換句話說,一個組件被假定為支持content:和file: 數據如果它的過濾器僅列舉了一個數據類型。