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权限配置:

<uses-permission android:name="android.permission.CALL_PHONE"/>

 

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

//通过隐式意图从一个项目启动另一个项目
    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.<data android:scheme="http" android:host="www.163.com" android:path="/note" mimeType="mnt/png"/>
         *   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配置:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.aex60_2_intentfilter_data_componet"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.aex60_2_intentfilter_data_componet.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.example.aex60" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" android:host="www.163.com" android:path="/note"
                    android:mimeType="mnt/png"/>
            </intent-filter>
        </activity>
    </application>
</manifest>
posted @ 2016-02-25 02:40  crazy_machine  阅读(435)  评论(0)    收藏  举报