編輯:關於Android編程
在Android中一個應用(APP1)如果要想調用另一應用的(APP2)的某一個Activity(Activity2),就需要在給Intent設置的參數能夠通過Activiy2 在清單文件中聲明的
一個Activity可以聲明多個Action,在驗證時只要通過一個即通過驗證,如果Activity2聲明如下3個Action:
…………
其他的應用可以通過給Intent設置Action方法調用到Activity2(如果系統中其他應用也有相同的Action,會進行列表供用戶選擇),如:
Intent intent=new Intent(); intent.setAction("ACTION1"); startActivity(intent);
Activity2的
在其他應用中可以為Intent添加Category,當所添加的Category都在Activity2有聲明是就會通過驗證,如下Intent就能通過驗證:
Intent intent=new Intent(); intent.setAction("ACTION1"); intent.addCategory("CATEGORY1"); intent.addCategory("CATEGORY3"); startActivity(intent);
Data驗證比較復雜點,可以驗證Intent中設置的Mime Type和Uri。Mime Type可以指定處理的資源類型,如“audio/*”表示所有音頻資源,設置MimeType:
調用的Intent 可以通過setType()或者setTypeAndNormalize()設置Mime Type,
Intent intent=new Intent(); intent.setAction("ACTION1"); intent.setType("audio/*"); // intent.setTypeAndNormalize("audio/*"); startActivity(intent);
Uri比較Url范圍廣,格式為:scheme://host:port/path,其中scheme為協議標識如:http等,host為IP、域名等,port為端口號,path為路徑。在
相應的調用Intent可以如下:
Intent intent=new Intent(); intent.setAction("ACTION1"); Uri uri=Uri.parse("http://www.google.com:8080/abc.jsp");//匹配path // Uri uri=Uri.parse("http://www.google.com:8080/index.jsp");//匹配pathPrefix // Uri uri=Uri.parse("http://www.google.com:8080/idexn");//匹配pathPattern intent.setData(uri); startActivity(intent);
但是,需要注意的是Intent的setData()方法和setType()會相互覆蓋,也就是說,如果先使用setType()設置了Mime Type,之後在使用setData()設置了Uri,那麼原先設置的MimeType就會被清空,反之也相同。以下為setData()方法源碼,看了就很容易理解了:
public Intent setData(Uri data) { mData = data; mType = null; return this; }
如果一個Activity的
總結下,如果一個Activity在
?1背景知識1.1Android平台軟件動態分析現狀眾所周知,在計算機領域中所有的軟件分析方法都可以歸為靜態分析和動態分析兩大類,在Android平台也不例外。而隨著軟件
1、效果展示2、布局文件<?xml version=1.0 encoding=utf-8?><RelativeLayout xmlns:
自動提示文本框(AutoCompleteTextView)可以加強用戶體驗,縮短用戶的輸入時間(百度的搜索框就是這個效果)。 首先,在xml中定義AutoComplete
最近忙的起飛,本來想周末寫的東西結果拖到了今天,不過沒事。下午抽出點時間把工作做了下,開源給大家。https://github.com/ddwhan0123/Useful