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[]  
     { "[email protected]","[email protected]" }); 
     //设置标题内容
     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:[email protected]");
        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);
    }
    
}