您的位置:首页 > 其它

Intent的属性以及intent的配置使用

2016-01-21 16:37 260 查看
Intent代表了Android应用的启动“意图”,包括启动app内部Activity和启动外部Activity。

Intent通过可以设置Action,data(Uri),component,class来启动指定的Activity;

<activity android:name="ShareActivity">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
<data android:mimeType="image/*"/>
</intent-filter>
</activity>

intent-filter顾名思义就是intent筛选器,通过设置action、category、data筛选特定的activity,被找到或者找到;

action和category就是一个字符串;

data可以设置多种值,包括数据类型和URI;

URI由3部分组成,Scheme(协议)、host和port(域名)、path(资源路径),Android固定的Scheme是content://;api提供了字符串转Uri的工具Uri.parse(Stri),str可以是普通的字符串,如:

Uri number = Uri.parse("tel:5551234");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);

Uri webpage = Uri.parse("http://www.android.com");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);


Android Api中建议调用外部Activiy时先做一个校验:

// Build the intent
Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);

// Verify it resolves
PackageManager packageManager = [code]getPackageManager()
;
List<ResolveInfo> activities = packageManager.queryIntentActivities(mapIntent, 0);
boolean isIntentSafe = activities.size() > 0;

// Start an activity if it's safe
if (isIntentSafe) {
startActivity(mapIntent);
}[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: