赞
踩
<application>
节点中声明<activity>
<?xml version="1.0" encoding="utf-8"?>//xml文件声明
<manifest xmlns:android="http://schemas.android.com/apk/res/android"//命名空间
package="net.dxs.activity"//应用程序的包名,一个Android系统不可以同时安装两个及以上的同包名程序
android:versionCode="1"//版本号
android:versionName="1.0" >//版本名
<uses-sdk
android:minSdkVersion="8"//最低兼容版本
android:targetSdkVersion="17" />//目标版本
<uses-permission android:name="android.permission.CALL_PHONE" />//申请一个拨打电话的权限
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"//应用的图标
android:label="@string/app_name"//应用的名称,系统设置卸载界面看到的应用名称
android:theme="@style/AppTheme" >//应用要使用的主题
<activity//一个界面
android:name="net.dxs.activity.MainActivity"
android:label="12.Main" >//当前界面的名称
<intent-filter>//意图过滤器
<action android:name="android.intent.action.MAIN" />//设置一个动作,启动程序
<category android:name="android.intent.category.LAUNCHER" />//在桌面生成一个图标
</intent-filter>
</activity>
//可以配置多个启动,在桌面生成多个启动图标
<activity
android:name="net.dxs.activity.OtherActivity"
android:label="12.Other" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
创建Intent对象, Intent指定要启动哪个Activity, startActivity()
public void explicit(View v) {
Intent intent = new Intent();// 创建意图
// Intent intent = new Intent(this, OtherActivity.class);// 创建意图
// intent.setClass(this, OtherActivity.class);// 指定类
// intent.setClassName(this, "net.dxs.activity.OtherActivity");
intent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList");//启动其他应用时(系统短信), Activity的export属性为true才能用
// intent.setClassName("com.android.camera", "com.android.camera.Camera");// 启动其他应用时(系统照相机), Activity的export属性为true才能用
startActivity(intent);// 启动Activity
}
<intent-filter>
如果能匹配上动作和数据就可以启动 /**
* 隐式启动
*
* @param v
*/
public void implicit(View v) {
Intent intent = new Intent();
//打电话
intent.setAction(Intent.ACTION_CALL); // 设置动作
intent.setData(Uri.parse("tel://15010990415")); // 设置数据
//网址
intent.setAction(Intent.ACTION_VIEW);//注意启动浏览器打开网址没有配置访问网络权限
intent.setData(Uri.parse("http://www.baidu.com"));
//图片
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file:///mnt/sdcard/a.jpg"), "image/*");//前两个//是协议,后一个/是跟目录
//音频
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file:///mnt/sdcard/1.mp3"), "audio/*");
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file:///mnt/sdcard/1.mp4"), "video/*");
startActivity(intent); // 根据意图中的动作和数据来匹配一个Activity
}
附加:android用于打开各种文件的intent工具类
//android用于打开各种文件的intent【原创】
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.net.Uri.Builder;
import java.io.File;
import android.content.Intent;
//自定义android Intent类,
//可用于获取打开以下文件的intent
//PDF,PPT,WORD,EXCEL,CHM,HTML,TEXT,AUDIO,VIDEO
示例:
//这个不行,可能是因为PDF.apk程序没有权限访问其它APK里的asset资源文件,又或者是路径写错?
//Intent it = getPdfFileIntent("file:///android_asset/helphelp.pdf");
//下面这些都OK
//Intent it = getHtmlFileIntent("/mnt/sdcard/tutorial.html");//SD卡主目录
//Intent it = getHtmlFileIntent("/sdcard/tutorial.html");//SD卡主目录,这样也可以
Intent it = getHtmlFileIntent("/system/etc/tutorial.html");//系统内部的etc目录
//Intent it = getPdfFileIntent("/system/etc/helphelp.pdf");
//Intent it = getWordFileIntent("/system/etc/help.doc");
//Intent it = getExcelFileIntent("/mnt/sdcard/Book1.xls")
//Intent it = getPptFileIntent("/mnt/sdcard/download/Android_PPT.ppt");//SD卡的download目录下
//Intent it = getVideoFileIntent("/mnt/sdcard/ice.avi");
//Intent it = getAudioFileIntent("/mnt/sdcard/ren.mp3");
//Intent it = getImageFileIntent("/mnt/sdcard/images/001041580.jpg");
//Intent it = getTextFileIntent("/mnt/sdcard/hello.txt",false);
startActivity( it );
public class MyIntent
{
//android获取一个用于打开HTML文件的intent
public static Intent getHtmlFileIntent( String param )
{
Uri uri = Uri.parse(param ).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(param ).build();
Intent intent = new Intent("android.intent.action.VIEW");
intent.setDataAndType(uri, "text/html");
return intent;
}
//android获取一个用于打开图片文件的intent
public static Intent getImageFileIntent( String param )
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "image/*");
return intent;
}
//android获取一个用于打开PDF文件的intent
public static Intent getPdfFileIntent( String param )
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/pdf");
return intent;
}
//android获取一个用于打开文本文件的intent
public static Intent getTextFileIntent( String param, boolean paramBoolean)
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (paramBoolean)
{
Uri uri1 = Uri.parse(param );
intent.setDataAndType(uri1, "text/plain");
}
else
{
Uri uri2 = Uri.fromFile(new File(param ));
intent.setDataAndType(uri2, "text/plain");
}
return intent;
}
//android获取一个用于打开音频文件的intent
public static Intent getAudioFileIntent( String param )
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("oneshot", 0);
intent.putExtra("configchange", 0);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "audio/*");
return intent;
}
//android获取一个用于打开视频文件的intent
public static Intent getVideoFileIntent( String param )
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("oneshot", 0);
intent.putExtra("configchange", 0);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "video/*");
return intent;
}
//android获取一个用于打开CHM文件的intent
public static Intent getChmFileIntent( String param )
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/x-chm");
return intent;
}
//android获取一个用于打开Word文件的intent
public static Intent getWordFileIntent( String param )
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/msword");
return intent;
}
//android获取一个用于打开Excel文件的intent
public static Intent getExcelFileIntent( String param )
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/vnd.ms-excel");
return intent;
}
//android获取一个用于打开PPT文件的intent
public static Intent getPptFileIntent( String param )
{
Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(param ));
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
return intent;
}
}
注意:
一定要在Manifest.xml中声明权限:
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<activity
android:name="net.dxs.activity.OtherActivity"
android:label="12.Other" >
<intent-filter>//配置上网过滤器
<action android:name="android.intent.action.VIEW" />//动作
<data android:scheme="http" />//协议
<category android:name="android.intent.category.DEFAULT" />//必须指定类型
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data
android:mimeType="image/*"
android:scheme="file" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data
android:mimeType="audio/*"
android:scheme="file" />
<data
android:mimeType="audio/*"
android:scheme="http" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
获取第三方传递过来的数据
String action = getIntent().getAction();
Uri data = getIntent().getData();
String type = getIntent().getType();
Intent intent = getIntent();// 获取Intent
// 从Intent中获取数据
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", -1);
示例源码->百度网盘
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。