现在的位置: 首页 > 综合 > 正文

通过Intent调用系统功能大全

2013年05月23日 ⁄ 综合 ⁄ 共 2682字 ⁄ 字号 评论关闭
package mars.com;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

public class DemoActivity extends Activity {
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Uri uri = Uri.parse("http://www.baidu.com");// 指定数据
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_VIEW);// 指定action
		intent.setData(uri);// 设置数据
		startActivity(intent);
	}
}

需要说明的是:这个上网不需要注册权限,原因我目前还不清楚,不过我认为是由于intent调用的是系统的浏览器,在这之前是不需要联网的,所以不用注册网络权限。因为系统浏览器肯定注册了。谁有更好的想法可以给我留言。

下面是调用打电话的

注册权限  <uses-permission android:name="android.permission.CALL_PHONE" />

调用系统打电话程序

Uri uri = Uri.parse("tel:18710829870");// 指定数据
Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);// 指定action
intent.setData(uri);// 设置数据
startActivity(intent);

发送短信

package mars.com;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

public class DemoActivity extends Activity {
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Uri uri = Uri.parse("smsto:15291874875");// 指定接收人数据
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_SENDTO);// 指定action
		intent.putExtra("sms_body", "这是一条短信");// 设置信息类型
		intent.setType("vnd.android-dir/mms-sms");// 设置数据
		intent.setData(uri);// 设置数据
		startActivity(intent);
	}
}

不要忘记配置权限<uses-permission android:name="android.permission.SEND_SMS" />

发送彩信,这个实在模拟器上才行,真机上得找到地址

package mars.com;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

public class DemoActivity extends Activity {
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Uri uri = Uri.parse("file:///sdcard/run0.png");// 本地图片
		Intent intent = new Intent();
		intent.setAction(Intent.ACTION_SEND);// 指定action
		intent.putExtra("address", "18710829870");// 接收人电话
		intent.putExtra("sms_body", "这是一条短信");
		intent.setType("image/png");// 设置mime类型
		intent.putExtra(Intent.EXTRA_STREAM, uri);// 设置图片
		startActivity(intent);
	}
}

电子邮件发送,这个是在真机上没问题,在模拟器上不行。而且还必须有一个gmail的邮箱才行

package mars.com;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class DemoActivity extends Activity {
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Intent emailIntent = new Intent(Intent.ACTION_SEND);// 实例化Intent
		emailIntent.setType("plain/text");// 设置类型
		String address[] = new String[] { "1154786190@qq.com" };
		String subject = "我是王玉超";
		String content = "www.baidu.com";
		emailIntent.putExtra(Intent.EXTRA_EMAIL, address);// 设置收件人
		emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);// 设置主题
		emailIntent.putExtra(Intent.EXTRA_TEXT, content);// 设置内容
		startActivity(emailIntent);
	}
}

抱歉!评论已关闭.