Android:意図的に他のプログラム、Uri、setAction、setData、setDataAndTypeを起動する
6756 ワード
Uri、setAction、setDataはボタンで他のプログラムを起動する:
btn 1 ClickのXML権限構成:
1つのプロジェクトから別のプロジェクトを暗黙的に起動します.
別のプロジェクトのXML構成:
==============================================================
その他のメモ:
1.メールの送信
注意:
2.メールボックスクライアントの起動
3.ダイレクトメール送信画面
4.androidダイヤルアップ内線番号方法
ホストと子機番号の間に「,」を2~3個追加すればよい.
本文は“空は痕跡がありませんが私は飛んだことがあります”のブログから出て、転載して作者と連絡してください!
//
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);
}
}
本文は“空は痕跡がありませんが私は飛んだことがあります”のブログから出て、転載して作者と連絡してください!