前言

安卓开发过程中,难免会遇到需要打开第三方应用(e.g. QQ、微信、支付宝)或者系统应用(e.g. 电话、短信、相册)等进行相关操作的情况。我总结了一些常用的第三方应用唤起方式,供备忘和参考。

查阅系统应用包名

第三方应用

通过包名启动

1
2
3
PackageManager packageManager = this.getPackageManager();
Intent intent= packageManager.getLaunchIntentForPackage("com.domain.example");
startActivity(intent);

通过包名及类名启动

1
2
3
4
5
Intent intent = new Intent();  
ComponentName comp = new ComponentName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.SplashActivity");
intent.setComponent(comp);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

系统应用

搜索内容

1
2
3
4
Intent intent = new Intent();  
intent.setAction(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"搜索内容")
startActivity(intent);

打开网页

1
2
3
Uri uri = Uri.parse("https://www.baidu.com");  
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);

查看地图

1
2
3
Uri uri = Uri.parse("geo:36.899533,66.036476");  
Intent intent = newIntent(Intent.Action_VIEW,uri);
startActivity(intent);

拨打电话

1
2
3
Uri uri = Uri.parse("tel:10086");  
Intent intent = new Intent(Intent.ACTION_DIAL,uri);
startActivity(intent);

发送短信

1
2
3
4
Uri uri = Uri.parse("smsto:10086");     
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "CXLL(Content)");
startActivity(intent);

发邮件

1
2
3
Uri uri = Uri.parse("mailto:123456@qq.com");  
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(intent);

播放媒体

1
2
3
4
Intent intent = new Intent(Intent.ACTION_VIEW);  
Uri uri = Uri.parse("file:///sdcard0/aLIEz.mp3");
intent.setDataAndType(uri,"audio/mp3");
startActivity(intent);

系统设置

1
2
Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);
startActivity(intent);

拍照

1
2
3
4
5
6
7
// 打开照相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);

// 取出图片
Bundle extras = intent.getExtras();
Bitmap bitmap = (Bitmap) extras.get("data");

选择图片

1
2
3
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 2);

录音机

1
2
Intent intent = new Intent(Media.RECORD_SOUND_ACTION);  
startActivity(intent);

安装软件

1
2
3
4
5
String fileName = Environment.getExternalStorageDirectory() + "/Application.apk";   
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)),
"application/vnd.android.package-archive");
startActivity(intent);

卸载软件

1
2
3
Uri uri = Uri.fromParts("package", 'PackageName', null);     
Intent intent = new Intent(Intent.ACTION_DELETE, uri);
startActivity(intent);

原生系统应用包名

应用名称 包名
电话 com.android.dialer
信息 com.android.mms
通讯录 com.android.contacts
浏览器 com.android.browser
日历 com.android.calendar
计算器 com.android.calculator2
设置 om.android.settings
时钟 com.android.deskclock
图库 com.android.gallery3d
音乐 com.android.music