android 启动服务setaction,Android:通过意图启动其他程序、Uri、setAction、setData、setDataAndType...

Uri、setAction、setData通过按钮启动其他程序:

//通过隐式意图启动其他程序

private void btn2Click()//浏览某个网页

{

Intent intent = new Intent();

intent.setAction(Intent.ACTION_VIEW);

Uri data = Uri.parse("http://www.163.com");

intent.setData(data);

startActivity(intent);

}

private void btn1Click()//通过按钮启动拨号

{

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);//自动拨号需要设置权限,CALL_PHONE

//intent.setAction(Intent.ACTION_DIAL);//跳转到拨号界面

//Uri.fromFile(file)打开某个文件

Uri data = Uri.parse("tel:110");//号码的uri标示符格式

intent.setData(data);

startActivity(intent);

}

btn1Click的XML权限配置:

通过隐式意图从一个项目启动另一个项目:

//通过隐式意图从一个项目启动另一个项目

private void btn1Click()

{

Intent intent = new Intent();

//intent.setAction("com.example.aex60");

/**1.setData后,如果隐式意图里没有组件有设置data的filter,则fc错误。

*2.setAction与setData并列关系(或的关系),隐式意图里两个都设置了,启动设置只要满足其一便能启动

*3.setData(Uri.parse("http://"))设置这个默认可以启动浏览器

*4.

*   scheme="http":协议,data为Uri.parse("http:")

*   host="www.163.com":地址

*   path="/note":(类似)文件夹等,前面必须加/。

*   mimeType="mnt/png":(类似)文件类型。

*

*   scheme、host、path、mimeType是与的关系。

*

*5.intent.setData(data);

*  intent.setType("mnt/png");

*  这两项不能分开写,需要使用 setDataAndType().

*

*6.intent.addCategory("xxxx.xxx");此方法可以增加过滤判断条件

*/

//      Uri data = Uri.parse("http:");//浏览器协议要加":",scheme="http"

Uri data = Uri.parse("http://www.163.com/note");

//        intent.setData(data);

//        intent.setType("mnt/png");

intent.setDataAndType(data, "mnt/png");

startActivity(intent);

}

另一个项目的XML配置:

==============================================================

其他笔记:

1.发送邮件

//建立Intent对象

Intent intent = new Intent();

//设置对象动作

intent.setAction(Intent.ACTION_SEND);

//设置对方邮件地址

intent.putExtra(Intent.EXTRA_EMAIL, new String[]

{ "abc@com.cn","edf@com.cn" });

//设置标题内容

intent.putExtra(Intent.EXTRA_SUBJECT, "test");

//设置邮件文本内容

intent.putExtra(Intent.EXTRA_TEXT, "test mail");

启动一个新的ACTIVITY,"Sending mail..."是在启动这个

ACTIVITY的等待时间时所显示的文字

startActivity(Intent.createChooser(intent, "Sending

mail..."));

注:

createChooser()方法设置应用选择器.

2.启动邮箱客户端

//启动邮箱客户端

private void clickEmail()

{

Intent mIntent = new Intent();

ComponentName comp = new ComponentName("com.android.email",

"com.android.email.activity.Welcome");

mIntent.setComponent(comp);

mIntent.setAction("android.intent.action.MAIN");

startActivity(mIntent);

}

3.直接到邮件发送界面

//发送邮件

private void clickEmail()

{

Uri uri = Uri.parse("mailto:housebox@manjay.com");

Intent it = new Intent(Intent.ACTION_SENDTO, uri);

startActivity(it);

}

4.android直拨分机号码方法

在主机与分机号码之间加两到三个","即可。

public class MainActivity extends Activity

{

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

final String num = "@#!4$0^0*(_-7)0-0,1 2=34" + "转" + "80067";

//正则保留数字和中文("转"),将"转"替换为",,"直拨分机号

String regEx = "[^0-9\u4e00-\u9fa5]+";

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(num);

String str = m.replaceAll("");

final String phone = str.replaceAll("转", ",,");

//输出结果:4007001234,,80067"

final TextView textView = (TextView) findViewById(R.id.textView1);

findViewById(R.id.button1).setOnClickListener(new OnClickListener()

{

@Override

public void onClick(View v)

{

textView.setText(phone);

callPhone(phone);

}

});

}

public void callPhone(String num)

{

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);// 自动拨号需要设置权限,CALL_PHONE

Uri data = Uri.parse("tel:" + num);

intent.setData(data);

startActivity(intent);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值