在不使用第三方的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等,直接分享...相关推荐

  1. 剖析Picasso加载压缩本地图片流程(解决Android 5.0部分机型无法加载本地图片的问题)

    之前项目中使用Picasso遇到了一个问题:在Android 5.0以上版本的部分手机上使用Picasso加载本地图片会失败.为了解决这个问题,研究了一下Picasso加载和压缩本地图片的流程,才有了 ...

  2. android picasso 显示本地图片,剖析Picasso加载压缩本地图片流程(解决Android 5.0部分机型无法加载本地图片的问题)...

    之前项目中使用Picasso遇到了一个问题:在Android 5.0以上版本的部分手机上使用Picasso加载本地图片会失败.为了解决这个问题,研究了一下Picasso加载和压缩本地图片的流程,才有了 ...

  3. uni-app微信小程序image引入图片;background-image背景图引入图片;小程序预览本地图片;小程序图片过大引入报错;获取本地图片的网络地址;

    uni-app小程序图片使用有image标签和background-image背景图两种方式: 下有获取本地图片的网络地址方式:见第四步 一.方式一:使用image标签引入: uni-app官方ima ...

  4. html图片红叉,html 中的本地图片显示红叉.路径没问题

    html 中的本地图片显示红叉.路径没问题0 My trip around the usa on a segway Segway'n USA Documenting my trip around th ...

  5. java 读取项目内图片,java web项目中读取本地图片

    在项目中,因为业务需要,用户上传的图片存放在服务器的D盘中,为了读取并显示到页面上,尝试了两种方法: 一  通过流读取 java代码: @RequestMapping(value = "/s ...

  6. wxss中图片路径不正确,无法使用本地图片

    微信小程序使用background-image没有图片显示 报错信息:图片-do-not-use-local-path pages/index/index.wxss 中的本地资源图片无法通过 WXSS ...

  7. Android保存图片到手机相册(res下的图片,网络图片都可以)

    今天主要说的是把图片保存到本地相册, 一.主要思路: 将一张图片,无论是本地图片还是网络图片先转成Bitmap格式,再调用方法保存到相册中 二.开发过程中可能会遇到的问题: 1:保存成功了,但图库不显 ...

  8. Android系统(168)---Android 开源项目分类汇总

    Android开源项目分类汇总 原网址:https://blog.csdn.net/prince77qiqiqq/article/details/51338330 Android 开源项目第一篇--个 ...

  9. javascript调用微信或QQ扫一扫

    项目里为了体验做的好点,想直接通过js调用手机的扫一扫:服务的用户主要是通过:微信或QQ之前使用过 微信或QQ的分享腾讯移动WEB开发平台的 '对外分享组件接口文档'http://open.mobil ...

  10. 微信小程序如何获取本地图片的网络地址

    ~~ 微信小程序如何获取本地图片的网络地址 ~~ 要想获取本地图片网络地址,首先得要上传到网络 一般的网络上传比如QQ空间 上传后右键图片获取其网络地址即可,但是小程序端可能会报错,大家可以试一试 还 ...

最新文章

  1. jdk动态代理和cglib动态代理的区别
  2. 软件测试模型以及测试方法
  3. 《Total Commander:万能文件管理器》——第2.3节.下载与安装
  4. Matlab 自带机器学习算法汇总
  5. 区块链BaaS云服务(35)亦笔科技ODRChain使用场景
  6. QT-- MainWindow外的cpp文件调用ui
  7. url模糊匹配优化_企业必备的网站SEO优化解决方案
  8. selenium webdriver模拟鼠标键盘操作
  9. 抓包及分析包的常用命令
  10. jenkins插件更换源_jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)
  11. mysql数据库连接空闲超时设置不生效,未区分全局变量及interactive_timeout设置
  12. 解决no module cv2
  13. 警惕:ERP系统不堪重负的几大预警信号
  14. 星岚技术 Win10 x64 纯净版 V2021.5【带驱动包】
  15. 2018甲骨文云大会:如何用“灵全快”抢占市场?
  16. 开涛SpringMVC笔记
  17. 计算机与昆虫关系的论文,趣味昆虫学论文 昆虫与人类的关系
  18. 三维点云论文——图片常用格式LaTeX排版
  19. maya 白天室内灯光_求解maya室内灯光怎么打
  20. 天津滨海职业学院计算机证书从哪领,2016年9月天津计算机等级考试准考证领取地点电话...

热门文章

  1. 超小尺寸的导电滑环介绍
  2. Ardunio和HAL库函数的stm32编程
  3. webpack5-打包css等样式资源,css等样式文件提取,css等样式文件压缩
  4. 【ps】ps cc中普通形状如何变成实时形状
  5. 怎么查看电脑cuda版本
  6. Vue - 简约大气 404 页面
  7. 90后黑客攻击某购物平台 “一元购”买走800万金饰
  8. 宾馆房间管理系统(C++)
  9. 基于php理发店管理系统
  10. 【美赛】2023年MCM问题Y:理解二手帆船价格(代码思路)