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);
    }

btn 1 ClickのXML権限構成:
<uses-permission android:name="android.permission.CALL_PHONE"/>

1つのプロジェクトから別のプロジェクトを暗黙的に起動します.
//                  
    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>

==============================================================
その他のメモ:
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ダイヤルアップ内線番号方法
ホストと子機番号の間に「,」を2~3個追加すればよい.
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);
    }
    
}

本文は“空は痕跡がありませんが私は飛んだことがあります”のブログから出て、転載して作者と連絡してください!