自己做界面,比较费时费力
如果真正明白Intent及IntentFilter的作用,此需求实现不难。
packagelab.sodino.mms;
importcom.google.android.mms.pdu.sodino.R;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
publicclassStartMMSAct extendsActivity {
publicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnPackagePath =(Button) findViewById(R.id.btnPackagePath);
btnPackagePath.setOnClickListener(newButton.OnClickListener() {
publicvoidonClick(View view) {
showMMSViewByPackagePath();
}
});
Button btnIntentFilter =(Button) findViewById(R.id.btnIntentFilter);
btnIntentFilter.setOnClickListener(newButton.OnClickListener() {
publicvoidonClick(View view) {
showMMSViewByIntentFilter();
}
});
}
//这是点击桌面图标启动相应应用程序的方式,前提是必须知道当前系统的MMS包名及入口类路径。
privatevoidshowMMSViewByPackagePath() {
Intent intent =newIntent();
intent.setClassName("com.android.mms",
"com.android.mms.ui.ConversationList");
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent);
}
//这是Intent-Filter过滤方式,是通用的方式。
privatevoidshowMMSViewByIntentFilter() {
Intent intent =newIntent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setType("vnd.android-dir/mms-sms");
//或改成亦可
//intent.setType("vnd.android.cursor.dir/mms");
startActivity(intent);
}
}