【Android】Android(安卓)App打开手机QQ、微信等应用
16lz
2022-07-14
分享可能会用到一些第三方的分享,但是,有时候,我们也可以将一些文本内容复制到粘贴板,然后打开手机QQ,或者是微信手动粘贴进行分享,现在分享一下如何打开手机QQ等应用(效果可以实现,有一些注释是个人理解)
第一种方式:通过一些协议打开:
Android:
打开QQ(只能是指定QQ的聊天窗口,目前没有找到只是打开qq的方法):
String url="mqqwpa://im/chat?chat_type=wpa&uin=123456";startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
打开微信:
String url="weixin://";startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
ps:附带上IOS的打开qq:
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];NSURL *url = [NSURL URLWithString:@"mqq://im/chat?chat_type=wpa&uin=123456&version=1&src_type=web"];NSURLRequest *request = [NSURLRequest requestWithURL:url];webView.delegate = self;[webView loadRequest:request];[self.view addSubview:webView];
第二种方式:通过包名打开:
Android:
打开QQ:
//同AndroidManifest中主入口Activity一样Intent intent = new Intent(Intent.ACTION_MAIN,null);intent.addCategory(Intent.CATEGORY_LAUNCHER);//得到一个PackageManager的对象PackageManager packageManager = mContext.getApplicationContext().getPackageManager();//获取到主入口的Activity集合List mlist = packageManager.queryIntentActivities(intent,0);Collections.sort(mlist,new ResolveInfo.DisplayNameComparator(packageManager)); for (ResolveInfo res :mlist){ String pkg = res.activityInfo.packageName; String cls = res.activityInfo.name; if (pkg.contains("com.tencent.mm")){ ComponentName componentName = new ComponentName(pkg,cls); Intent intent1 = new Intent(); intent1.setComponent(componentName); intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent1); } }
打开微信以及其他应用同理:
几个常用的package有:新浪微博:com.sina.weibo腾讯微博:com.tencent.WBlog微信:com.tencent.mmQQ:com.tencent.mobileqq
更多相关文章
- [RK3399][Android7.1.1] WifiAp:开机默认打开wifi热点
- Android开发者实用代码片段 与大家分享
- Android(安卓)SDK Manager无法更新的解决
- 修复Android(安卓)App在开机后入口类被启动两次的bug
- Android打开/关闭数据流量
- unity内置浏览器插件UniWebView的使用(支持Android,ios,Mac)
- 分享20个Android游戏源码,希望大家喜欢哈!
- Android(安卓)SDK版本更新
- Android(安卓)QQ 分享