Android在一个应用程序中启动另一个应用程序
来源:互联网 发布:程序员转行做生意 编辑:程序博客网 时间:2024/05/01 19:38
转自如下相关博客:《在android程序中打开另一个应用程序》http://www.cnblogs.com/airry66/p/3966569.html
《android 在一个应用中启动另一个应用》http://hunankeda110.iteye.com/blog/1960444
《Android中通过Intent调用其他应用的方法(转)》http://peirubing.iteye.com/blog/1568145
Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。
一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:
Intent intent =
new
Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn =
new
ComponentName(packageName, className);
intent.setComponent(cn);
startActivity(intent);
或者这样:
Intent intent =
new
Intent();
PackageManager packageManager =
this
.getPackageManager();
intent = packageManager.getLaunchIntentForPackage(packageName);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP) ;
this
.startActivity(intent);
第一步:怎么获得包名?
PackageManager packageManager = context.getPackageManager();
packageManager.getInstalledApplications(0);
这就得到了手机上安装的所有应用的程序信息,当然包括包名,只需要查找自己需要的程序就可以了。
private
void
openApp(String packageName) {
PackageInfo pi = getPackageManager().getPackageInfo(packageName,
0
);
Intent resolveIntent =
new
Intent(Intent.ACTION_MAIN,
null
);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent,
0
);
ResolveInfo ri = apps.iterator().next();
if
(ri !=
null
) {
String packageName = ri.activityInfo.packageName;
String className = ri.activityInfo.name;
Intent intent =
new
Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn =
new
ComponentName(packageName, className);
intent.setComponent(cn);
startActivity(intent);
}
}
Android中通过Intent调用其他应用的方法
启动浏览器
代码与范例:
12
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); startActivity(intent);
说明:启动浏览器并前往http://www.google.com 。
启动拨号程序
代码与范例:
12
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("tel:138"));startActivity(intent);
说明:启动拨号程序并输入号码138。
通话
代码与范例:
123
Uri uri=Uri.parse("tel:138");Intent intent=new Intent(Intent.ACTION_CALL,uri);startActivity(intent);
说明:拨打号码138。需要为程序申请权限<uses-permission android:name=”android.permission.CALL_PHONE”/>。
发送短信
代码与范例:
1234
Uri smsUri = Uri.parse(url);Intent intent = new Intent(Intent.ACTION_VIEW, smsUri);intent.setType("vnd.android-dir/mms-sms");startActivity(intent);
说明:启动短信程序。
启动通讯录
代码与范例:
12
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people/1"));startActivity(intent);
说明:启动同学录的某一条目。
启动地图程序(Google Maps等)
代码与范例:
123
Uri mapUri = Uri.parse(url);Intent intent = new Intent(Intent.ACTION_VIEW, mapUri);startActivity(intent);
说明:启动地图程序。
搜索路线
代码与范例:
12345
Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);intent.setClassName("com.google.android.apps.maps","com.google.android.maps.MapsActivity");intent.setData(Uri.parse("http://maps.google.com/maps?myl=saddr&daddr=&dirflg=d"));startActivity(intent);
说明:启动Google Maps并搜索路线,具体的方法另外补充。
启动邮件程序
代码与范例:
12345
Uri uri =Uri.parse("mailto:xxx@example.com");Intent intent = newIntent(Intent.ACTION_SENDTO, uri);intent.putExtra(Intent.EXTRA_SUBJECT, "Hello world");intent.putExtra(Intent.EXTRA_TEXT, "Ganbarimasu");startActivity(intent);
说明:启动邮件程序并将收件人设为xxx@example.com,邮件主题设为Hello world,内容设为Ganbarimasu。
启动邮件程序并添加多个收件人
代码与范例:
123456789
Intent intent=new Intent(Intent.ACTION_SEND); String[] tos={"me@example.com"}; String[]ccs={"you@example.com"}; intent.putExtra(Intent.EXTRA_EMAIL, tos); intent.putExtra(Intent.EXTRA_CC, ccs); intent.putExtra(Intent.EXTRA_TEXT, "The email body text"); intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); intent.setType("message/rfc822"); startActivity(Intent.createChooser(intent,"Choose Email Client"));
说明:启动邮件程序并设置为发送给多个收件人。
启动邮件程序并添加附件
代码与范例:
12345
Intent intent = newIntent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_SUBJECT, "The email subject text"); intent.putExtra(Intent.EXTRA_STREAM,"file:///sdcard/mysong.mp3); sendIntent.setType("audio/mp3"); startActivity(Intent.createChooser(intent,"Choose Email Client"));
说明:启动邮件程序并添加附件。
播放MP3文件
代码与范例:
1234
Intent intent = new Intent(Intent.ACTION_VIEW);Uri uri =Uri.parse("file:///sdcard/song.mp3");intent.setDataAndType(uri,"audio/mp3");startActivity(intent);
说明:启动音乐程序并播放MP3歌曲。
卸载程序
代码与范例:
123
Uri uri =Uri.fromParts("package", strPackageName, null); Intent intent = newIntent(Intent.ACTION_DELETE, uri); startActivity(intent);
说明:卸载包名为strPackageName的程序。
安装程序
代码与范例:
12
Uri installUri = Uri.fromParts("package",strPackageName, null);returnIt = newIntent(Intent.ACTION_PACKAGE_ADDED, installUri);
说明:安装包名为strPackageName的程序。
启动设置
代码与范例:
12
Intent intent=new Intent("android.settings.SETTINGS");startActivity(intent);
说明:进入设定程序。
启动电子市场
代码与范例:
123
Uri uri=Uri.parse("market://search?q=pname:org.breezesoft.techolite");Intent intent=new Intent(Intent.ACTION_VIEW,uri);startActivity(intent);
说明:以包名org.breezesoft.techolite为条件启动Android Market。
启动电子市场并进入程序信息界面
代码与范例:
123
Uri uri = Uri.parse("market://details?id=org.breezesoft.techolite");Intent intent = new Intent(Intent.ACTION_VIEW, uri);startActivity(intent);
说明:启动Android Market并进入包名为org.breezesoft.techolite的程序的详细信息界面。
从图库(Gallery)中选择并获取一张图片
代码与范例:
1234
Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);startActivityForResult(intent, 11);
说明:启动图库并中选择并获取一张图片,返回原程序。
- Android学习笔记----在一个应用程序中启动另一个应用程序
- Android在一个应用程序中启动另一个应用程序
- android应用程序中启动另一个应用程序
- android应用程序中启动另一个应用程序
- android应用程序中启动另一个应用程序
- Android应用程序中启动另一个应用程序
- 在一个应用程序中打开另一个应用程序
- 在一个应用程序中调用另一个应用程序
- 在一个Android应用程序中启动另一个程序(微信)
- 在一个程序中打开另一个应用程序
- 在一个程序中打开另一个应用程序
- iOS 如何在一个应用程序中调用另一个应用程序
- iOS 如何在一个应用程序中调用另一个应用程序
- iOS 如何在一个应用程序中调用另一个应用程序
- iOS 如何在一个应用程序中调用另一个应用程序
- iOS 如何在一个应用程序中调用另一个应用程序
- iOS 如何在一个应用程序中调用另一个应用程序
- iOS 如何在一个应用程序中调用另一个应用程序
- 今天起更一更java相关基础小知识把!
- 文章发送测试
- 二叉查找树python实现
- Android 保存Glide展示的图片到本地
- [Eclipse整合Maven远程仓库开发基础配置]
- Android在一个应用程序中启动另一个应用程序
- 数据库概述
- 树莓派找不到wiringPi.h文件
- 根据二叉树的前序遍历和中序遍历的结果,请重建出该二叉树
- 约瑟夫环
- python中的编码和解码
- eclipse +python 安装时遇到的问题及解决办法
- “逃离”中国的外资,在东南亚却再遇中企阻击
- 月销10000件的日本无痕磁石内裤,让它助你猛龙过江 | 钛空精分小剧场