Android打开第三方应用方法总结

Android打开第三方应用方法总结

在Android开发中,有很多地方都需要启动其他的程序,调起第三方应用(“QQ”、“微信”、“支付宝”、“高德地图”等),还有一些系统应用(“电话”、“短信”、“拍照”、“图库”等),下面一起来看看如何启动这些常用应用。

QQ

1. 第三方应用

1)通过包名启动

PackageManager packageManager = this.getPackageManager();
Intent intent= packageManager.getLaunchIntentForPackage("com.tencent.mobileqq");
startActivity(intent);

2)通过包名和类名启动

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

2. 系统应用

1)从google搜索内容

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

2)浏览网页

Uri uri = Uri.parse("http://www.google.com");  
Intent intent = new Intent(Intent.ACTION_VIEW,uri);  
startActivity(intent);  

3)显示地图

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

4)路径规划

Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=39.9 116.3&daddr=31.2 121.4");  
Intent intent = newIntent(Intent.ACTION_VIEW,URI);  
startActivity(intent);  

5)拨打电话

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

6)发短信

Uri uri = Uri.parse("smsto:10086");     
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);     
intent.putExtra("sms_body", "SMS Text");     
startActivity(intent); 

7)发送彩信

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra("sms_body", "Hello");
Uri uri = Uri.parse("content://media/external/images/media/23");
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/png");
startActivity(intent);

8)发送Email

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

9)播放多媒体

Intent intent = new Intent(Intent.ACTION_VIEW);  
Uri uri = Uri.parse("file:///sdcard/song.mp3");  
intent.setDataAndType(uri,"audio/mp3");  
startActivity(intent);

10)设置界面

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

11)拍照

// 打开拍照程序
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
<span style="color:#444444"><code> // 取出照片数据
Bundle extras = intent.getExtras();
Bitmap bitmap = (Bitmap) extras.get("data");
</code></span>

12)选择图片

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

13)打开录音机

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

14)卸载软件

Uri uri = Uri.fromParts("package", strPackageName, null);     
Intent intent = new Intent(Intent.ACTION_DELETE, uri);     
startActivity(intent);  

15)安装软件

<String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";   
Intent intent = new Intent(Intent.ACTION_VIEW);   
intent.setDataAndType(Uri.fromFile(new File(fileName)),
"application/vnd.android.package-archive");   
startActivity(intent);  

3. 场景应用

检查版本更新,跳转到腾讯应用宝进行下载更新

/** 跳转到腾讯应用宝下载软件 */
public static void goThirdApp() {
    if (isAvilible(this, "com.tencent.android.qqdownloader")) {// 市场存在      
        startAppStore(getApplicationContext(), "项目包名", "com.tencent.android.qqdownloader");
    } else {
        Uri uri = Uri.parse("http://a.app.qq.com/o/simple.jsp?pkgname=项目包名");
        Intent it = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(it);
    }
}
/** 启动到app详情界面 */
public static void startAppStore(Context context, String appPkg, String marketPkg) {
     try {
            if (TextUtils.isEmpty(appPkg))return;
                Uri uri = Uri.parse("market://details?id=" + appPkg);
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        
             if (!TextUtils.isEmpty(marketPkg)) {
                intent.setPackage(marketPkg);
             }
              intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
              context.startActivity(intent);               
    } catch (Exception e) {
        e.printStackTrace();               
    }      
}
/** 判断软件是否存在 */
public static boolean isAvilible(Context context, String packageName) {
    try {
        context.getPackageManager().getPackageInfo(packageName, 0);
        return true;
    } catch (NameNotFoundException e) {
        return false;
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115014.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java file文件删除_Java File.delete 删除文件

    java file文件删除_Java File.delete 删除文件首页>基础教程>IO流>File类JavaFile.delete删除文件Java中File.delete删除当前文件或者文件夹,如果删除的是文件夹,则该文件必须为空,如果要删除一个非空的文件夹,则需要首先删除该文件夹下面每个文件和文件夹,才可以删除。定义publicbooleandelete()返回当且仅当成功删除文件或目录时,返回true;否则返回false…

    2022年5月18日
    26
  • 一文搞定7大流行后端框架:Spring、Netty、MyBatis、Hibernate、Dubbo…「建议收藏」

    一文搞定7大流行后端框架:Spring、Netty、MyBatis、Hibernate、Dubbo…「建议收藏」框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。今天给大家分享49篇【后端编程框架】相关精选学习资…

    2022年5月1日
    57
  • java中方法的定义

    java中方法的定义

    2022年3月3日
    345
  • 循环队列的顺序存储结构Java

    循环队列的顺序存储结构Java循环队列的顺序存储结构在上次,我们讲到的是,队列的顺序存储结构也是由ArrayList实现的,从此就可以看出,在入队时候的时间复杂度为O(1),但是在出队时候的时间复杂度为O(n),这是因为,每次在出队后要将数组后面的有效元素前移一位。所以,这里就会用到循环队列,显然,这种队列也是顺序存储结构,在这个循环队列中也会去实现接口Queue。首先,我们要想到的是如何将一般的队列改变为循环队列。…

    2022年5月16日
    39
  • 渗透测试常用工具汇总_渗透测试实战

    渗透测试常用工具汇总_渗透测试实战目录1.Wireshark2.Metasploit3.Nmap4.Nessus5.SQLMap6.W3af1.WiresharkWireshark(前称Ethereal)是一个网络分包分析软件,是世界上使用最多的网络协议分析器。Wireshark兼容所有主要的操作系统,如Windows、Linux、macOS和Solaris。kali系统里面自带有这个软件,我们可以直接使用;或者可以在网上下载windows版本,在windows系统里使用。..

    2022年8月12日
    4
  • 2021最新激活码phpstorm破解方法「建议收藏」

    2021最新激活码phpstorm破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    178

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号