android分享图片到qq,Android 如何实现本地图片直接分享到微信、来往、QQ等,直接分享...
在不使用第三方的SDK情况下,如何在Android上直接分享图片到指定的应用上,例如分享到微信、来往、QQ等。具体实现见贴出的代码。实现后才发现好简单的
例如:要在app中直接分享图片到微信、来往等,而不调用他们的sdk
直接贴代码如下;
public void shareImage(Bitmap bitmap) {
try {
Uri uriToImage = Uri.parse(MediaStore.Images.Media.insertImage(
mContext.getContentResolver(), bitmap, null, null));
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/*");
// 遍历所有支持发送图片的应用。找到需要的应用
PackageManager packageManager = mContext.getPackageManager();
List resolveInfoList = packageManager
.queryIntentActivities(shareIntent,
PackageManager.GET_INTENT_FILTERS);
ComponentName componentName = null;
for (int i = 0; i < resolveInfoList.size(); i++) {
if (TextUtils.equals(
resolveInfoList.get(i).activityInfo.packageName,
YouNeedAppPackageName)) {
componentName = new ComponentName(
resolveInfoList.get(i).activityInfo.packageName,
resolveInfoList.get(i).activityInfo.name);
break;
}
}
// 已安装**
if (null != componentName) {
shareIntent.setComponent(componentName);
mContext.startActivity(shareIntent);
} else {
ContextUtil.getInstance().showToastMsg("请先安装**");
}
} catch (Exception e) {
ContextUtil.getInstance().showToastMsg("分享图片到**失败");
}
}
参考的文章如下:
android设置应用程序默认值
Android中有时打开一个文件,系统会弹出一个应用程序选择列表供你选择.如果你把某个应用程序设为默认值,则不会弹出选择框,而会直接调用该程序.
设置方法如下:
PackageManager pm = getPackageManager();
IntentFilterfilter = new IntentFilter();
filter.addCategory("android.intent.category.DEFAULT");
ComponentName component = newComponentName("YourClearAppPakageName","YourClearAppClassName");
ComponentName[] components = new ComponentName[]{new ComponentName("YourPreferAppPakageName","YourPreferAppClassName"), component};
pm.clearPackagePreferredActivities("YourClearAppPakageName");
pm.addPreferredActivity(filter,IntentFilter.MATCH_CATEGORY_EMPTY, components, component);
列入修改系统默认Launhcer但不是唯一的Launcher
PackageManager pm = getPackageManager();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MAIN");
filter.addCategory("android.intent.category.HOME");
filter.addCategory("android.intent.category.DEFAULT");
Context context = getApplicationContext();
ComponentName component = new ComponentName(context.getPackageName(), TestReplaceHomeAppActivity.class.getName()); ComponentName[] components = new ComponentName[] {new ComponentName("com.android.launcher", "com.android.launcher.Launcher"), component};
pm.clearPackagePreferredActivities("com.android.launcher"); pm.addPreferredActivity(filter, IntentFilter.MATCH_CATEGORY_EMPTY, components, component);
修改默认浏览器
PackageManager packageManager =context.getPackageManager();
String str1 = "android.intent.category.DEFAULT";
String str2 = "android.intent.category.BROWSABLE";
String str3 = "android.intent.action.VIEW";
//设置默认项的必须参数之一,用户的操作符合该过滤器时,默认设置起效
IntentFilter filter = new IntentFilter(str3);
filter.addCategory(str1);
filter.addCategory(str2);
filter.addDataScheme("http");
//设置浏览页面用的Activity
ComponentName component = new ComponentName(context
.getPackageName(), BrowserActivity.class.getName());
Intent intent = new Intent(str3);
intent.addCategory(str2);
intent.addCategory(str1);
Uri uri = Uri.parse("");
intent.setDataAndType(uri, null);
//找出手机当前安装的所有浏览器程序
List resolveInfoList = packageManager
.queryIntentActivities(intent,
PackageManager.GET_INTENT_FILTERS);
int size = resolveInfoList.size();
ComponentName[] arrayOfComponentName = newComponentName[size];
for (int i = 0; i < size; i++)
{
ActivityInfo activityInfo =resolveInfoList.get(i).activityInfo;
String packageName = activityInfo.packageName;
String className = activityInfo.name;
//清除之前的默认设置
packageManager.clearPackagePreferredActivities(packageName);
ComponentName componentName = newComponentName(packageName,
className);
arrayOfComponentName[i] = componentName;
}
packageManager.addPreferredActivity(filter,
IntentFilter.MATCH_CATEGORY_SCHEME,arrayOfComponentName,
component);
,
android分享图片到qq,Android 如何实现本地图片直接分享到微信、来往、QQ等,直接分享...相关推荐
- 剖析Picasso加载压缩本地图片流程(解决Android 5.0部分机型无法加载本地图片的问题)
之前项目中使用Picasso遇到了一个问题:在Android 5.0以上版本的部分手机上使用Picasso加载本地图片会失败.为了解决这个问题,研究了一下Picasso加载和压缩本地图片的流程,才有了 ...
- android picasso 显示本地图片,剖析Picasso加载压缩本地图片流程(解决Android 5.0部分机型无法加载本地图片的问题)...
之前项目中使用Picasso遇到了一个问题:在Android 5.0以上版本的部分手机上使用Picasso加载本地图片会失败.为了解决这个问题,研究了一下Picasso加载和压缩本地图片的流程,才有了 ...
- uni-app微信小程序image引入图片;background-image背景图引入图片;小程序预览本地图片;小程序图片过大引入报错;获取本地图片的网络地址;
uni-app小程序图片使用有image标签和background-image背景图两种方式: 下有获取本地图片的网络地址方式:见第四步 一.方式一:使用image标签引入: uni-app官方ima ...
- html图片红叉,html 中的本地图片显示红叉.路径没问题
html 中的本地图片显示红叉.路径没问题0 My trip around the usa on a segway Segway'n USA Documenting my trip around th ...
- java 读取项目内图片,java web项目中读取本地图片
在项目中,因为业务需要,用户上传的图片存放在服务器的D盘中,为了读取并显示到页面上,尝试了两种方法: 一 通过流读取 java代码: @RequestMapping(value = "/s ...
- wxss中图片路径不正确,无法使用本地图片
微信小程序使用background-image没有图片显示 报错信息:图片-do-not-use-local-path pages/index/index.wxss 中的本地资源图片无法通过 WXSS ...
- Android保存图片到手机相册(res下的图片,网络图片都可以)
今天主要说的是把图片保存到本地相册, 一.主要思路: 将一张图片,无论是本地图片还是网络图片先转成Bitmap格式,再调用方法保存到相册中 二.开发过程中可能会遇到的问题: 1:保存成功了,但图库不显 ...
- Android系统(168)---Android 开源项目分类汇总
Android开源项目分类汇总 原网址:https://blog.csdn.net/prince77qiqiqq/article/details/51338330 Android 开源项目第一篇--个 ...
- javascript调用微信或QQ扫一扫
项目里为了体验做的好点,想直接通过js调用手机的扫一扫:服务的用户主要是通过:微信或QQ之前使用过 微信或QQ的分享腾讯移动WEB开发平台的 '对外分享组件接口文档'http://open.mobil ...
- 微信小程序如何获取本地图片的网络地址
~~ 微信小程序如何获取本地图片的网络地址 ~~ 要想获取本地图片网络地址,首先得要上传到网络 一般的网络上传比如QQ空间 上传后右键图片获取其网络地址即可,但是小程序端可能会报错,大家可以试一试 还 ...
最新文章
- jdk动态代理和cglib动态代理的区别
- 软件测试模型以及测试方法
- 《Total Commander:万能文件管理器》——第2.3节.下载与安装
- Matlab 自带机器学习算法汇总
- 区块链BaaS云服务(35)亦笔科技ODRChain使用场景
- QT-- MainWindow外的cpp文件调用ui
- url模糊匹配优化_企业必备的网站SEO优化解决方案
- selenium webdriver模拟鼠标键盘操作
- 抓包及分析包的常用命令
- jenkins插件更换源_jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)
- mysql数据库连接空闲超时设置不生效,未区分全局变量及interactive_timeout设置
- 解决no module cv2
- 警惕:ERP系统不堪重负的几大预警信号
- 星岚技术 Win10 x64 纯净版 V2021.5【带驱动包】
- 2018甲骨文云大会:如何用“灵全快”抢占市场?
- 开涛SpringMVC笔记
- 计算机与昆虫关系的论文,趣味昆虫学论文 昆虫与人类的关系
- 三维点云论文——图片常用格式LaTeX排版
- maya 白天室内灯光_求解maya室内灯光怎么打
- 天津滨海职业学院计算机证书从哪领,2016年9月天津计算机等级考试准考证领取地点电话...