基于微信7.0.3

发送文本

发送文件的方法都已经找到了(从其他地方复制到了)

但是发送图片方法一直找不到,就算找到了也会报错

插入代码

import android.content.Intent;

import android.net.Uri;

import android.os.Environment;

import android.util.Log;

import java.io.File;

import java.util.ArrayList;

import de.robv.android.xposed.XposedBridge;

import de.robv.android.xposed.XposedHelpers;

public class WXMessageUtils {

public static void sendText(final String wxId,

String strContent) {

if (MainXposed.classLoader == null) {

XposedBridge.log("微信助手未初始化");

return;

}

//构造new里面的参数:l iVar = new i(aao, str, hQ, i2, mVar.cvb().fD(talkerUserName, str));

//Class> classiVar = ;

Object objectiVar = XposedHelpers.newInstance(

XposedHelpers.findClassIfExists("com.tencent.mm.modelmulti.h", MainXposed.classLoader),

wxId, strContent, 1);

//创建静态实例对象au.DF(),转换为com.tencent.mm.ab.o对象

Object objectG = XposedHelpers.callStaticMethod(

XposedHelpers.findClassIfExists("com.tencent.mm.model.av", MainXposed.classLoader),

"Pw");

//调用发消息方法

try {

XposedHelpers.callMethod(objectG, "a", objectiVar, 0);

XposedBridge.log("发送消息成功-----");

} catch (Exception e) {

XposedBridge.log("发送消息失败XXXXXXX");

XposedBridge.log(e.getMessage());

}

}

public static void sendImage(final String wxId, String imgPath) {

Class findClass = XposedHelpers.findClass("com.tencent.mm.av.n", MainXposed.wxLpparam.classLoader);

Object obj = XposedHelpers.callStaticMethod(findClass, "alL");

if (obj == null) {

obj = XposedHelpers.newInstance(findClass);

}

XposedHelpers.callMethod(obj, "a", 0, 0, imgPath, wxId, Boolean.TRUE);

final ArrayList arrayList = new ArrayList<>();

arrayList.add(imgPath);

final Object finalObj = obj;

XposedHelpers.callMethod(finalObj,"b", arrayList, Boolean.TRUE, 0, 0, wxId);

//-------------------------------------------------------------------------------------------------------------------------

// paramClassLoader, WechatEntity paramWechatEntity, paramString1, paramString2, paramString3,

// Object[] arrayOfObject = new Object[2];

// String sendPic_class_1 = "com.tencent.mm.av.n";

// String sendPic_class_2 = "com.tencent.mm.ae.n";

// String sendPic_field_1 = "hzX";

// String sendPic_method_1 = "a";

//

// arrayOfObject[0] = XposedHelpers.newInstance(XposedHelpers.findClass(sendPic_class_1, MainXposed.classLoader),

// new Object[]{Integer.valueOf(3), "", wxId, imgPath,

// Integer.valueOf(1), null, Integer.valueOf(1), "", "", Boolean.valueOf(true), Integer.valueOf(2130837923)});

//

// arrayOfObject[1] = Integer.valueOf(1);

//

// XposedHelpers.callMethod(XposedHelpers.getStaticObjectField(

// XposedHelpers.findClass(sendPic_class_2, MainXposed.classLoader), sendPic_field_1), sendPic_method_1, arrayOfObject);

//

}

/**

* 发送文件方法

*

* @param wxId 对方用户ID

* @param filePath 文件路径

*/

public static void sendFile(String wxId, String filePath) {

File file = new File(filePath);

ClassLoader cl = MainXposed.classLoader;

Class IMediaObject = XposedHelpers.findClass("com.tencent.mm.opensdk.modelmsg.WXMediaMessage$IMediaObject", cl);

Class fileObjectClz = XposedHelpers.findClass("com.tencent.mm.opensdk.modelmsg.WXFileObject", cl);

Class mediaMessageClz = XposedHelpers.findClass("com.tencent.mm.opensdk.modelmsg.WXMediaMessage", cl);

Class mediaMsgSenderClz = XposedHelpers.findClass("com.tencent.mm.pluginsdk.model.app.l", cl);

if (file.exists() && file.isFile()) {

Object fileObject = XposedHelpers.newInstance(fileObjectClz);

XposedHelpers.callMethod(fileObject, "setFilePath", filePath);

Object mediaObject = XposedHelpers.newInstance(mediaMessageClz);

XposedHelpers.setObjectField(mediaObject, "mediaObject", IMediaObject.cast(fileObject));

XposedHelpers.setObjectField(mediaObject, "title", file.getName());

XposedHelpers.setObjectField(mediaObject, "description", getFileDesc(file.length()));

XposedHelpers.callStaticMethod(mediaMsgSenderClz, "a", mediaObject, "", "", wxId, 4, null);

XposedBridge.log("发送完毕==" + filePath);

} else {

Log.e("文件不存在,无法发送 %s", filePath);

}

}

/**

* 获取文件大小

*

* @param filesize

* @return

*/

private static String getFileDesc(long filesize) {

long j = filesize;

if ((j >> 30) > 0) {

// GB

return (((double) Math.round((((double) j) * 10.0d) / 1.073741824E9d)) / 10.0d) + " GB";

}

if ((j >> 20) > 0) {

// MB

return (((double) Math.round((((double) j) * 10.0d) / 1048576.0d)) / 10.0d) + " MB";

}

if ((j >> 9) <= 0) {

return j + " B";

}

return (((double) Math.round((((double) j) * 10.0d) / 1024.0d)) / 10.0d) + " KB";

}

}

有没有大佬指导一下?

微信android发送图片,[求助]Xposed微信发送图片方法相关推荐

  1. 微信 android兼容性问题怎么解决方案,微信7.0版本与EMUI系统兼容性问题,华为官方是这样回复的...

    目前,微信 7.0 版本已经逐步在各大 Android 手机上上线,然而近日华为官方在花粉俱乐部中发布了一则<说明>,称微信 7.0 在 EMUI 上出现了一些兼容性问题,目前已经推动腾讯 ...

  2. 微信 android兼容性问题怎么解决方案,微信小程序兼容性问题

    本文我们来谈谈微信小程序系统兼容性的那些坑. 微信小程序兼容性问题 微信小程序发布一周多了,兼容性问题,特别是 Android 平台兼容性问题特别严重.据我观察,好多小程序掉到兼容性的坑里.掉坑里不要 ...

  3. 微信 Android design 代码,[教程]让微信界面更加 Android Design

    在早期 Android 的生态链还未完全建立起来的时候,很多 Android 软件基本上都是照搬 iOS 上面的那一套拟物风格,包括界面.样式.交互等,如此生搬硬套使得很多 Android 软件体验不 ...

  4. 微信android字体颜色,如何用微信打出颜色各异的字

    如何用微信打出颜色各异的字 看了是不是觉得特别神奇?小编和别人聊微信时候的字居然是彩色的!好啦,不用羡慕,小编现在来教你怎么在微信里输入彩色的文字,方法其实很简单! 首先打开聊天对话窗口,点击你准备要 ...

  5. 微信Android如何实现计步数,微信运动步数是怎样计算的?终于有人研究出来了......

    原标题:微信运动步数是怎样计算的?终于有人研究出来了... 微信运动每天都记录着你走路的步数,他会形成榜单,走的多收到很多赞,走的少则无人关注,如果你走到第一,你的照片将霸占排行榜封面. 所以一段时间 ...

  6. 计算机无法打印图片,求助!电脑不能打印图片,图形

    当显示 Memory is low. ( 内存不足 ) Press ( 按下 ) 时,说明多功能一体机内存几乎完全用尽. 这样的面板信息一般发生在传真的时候,此时可以清除内存中的传真. 删除内存中的传 ...

  7. 微信 Android 模块化架构重构实践

    微信Android架构历史 微信Android诞生之初,用的是常见的分层结构设计.这种架构简单.清晰并一直沿袭至今.这是微信架构的v1.x时代. 图1-架构演进 到了微信架构的v2.x时代,随着业务的 ...

  8. 反编译apk修改v7包_微信Android SDK反编译还原源码 进行修改重新编译

    一.介绍 微信sdk,做开发的都应该用过,微信分享.支付,都要用到的. 接下来,跟着我,把他的sdk源码还原为一个module可编译的形式. 用到的工具: jadx: 这是一款反编译apk和jar包的 ...

  9. 微信Android模块化架构重构实践

    微信Android架构历史 微信Android诞生之初,用的是常见的分层结构设计.这种架构简单.清晰并一直沿袭至今.这是微信架构的v1.x时代. 图1-架构演进 到了微信架构的v2.x时代,随着业务的 ...

最新文章

  1. 批量 kill mysql 中运行时间长的sql
  2. [Hadoop][Zookeeper]Cluster + HA
  3. 'cross-env' 不是内部或外部命令,也不是可运行的程序
  4. TLD(Tracking-Learning-Detection)学习与源码理解之(五)
  5. POJ 1150 The Last Non-zero Digit 数论+容斥
  6. C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP),多多宜善
  7. Mac操作指南:废纸篓里的文件无法清除如何解决?
  8. python对列表进行去重_Python编程常用技巧–持续更新
  9. excel数据处理一:巧妙使用openpyxl提取、筛选数据
  10. 网络就好似一个个树洞
  11. Visual Studio Code,一款功能强大且轻巧的免费代码集成编辑器介绍
  12. AWS中国 Kubernetes 搭建指南
  13. 手把手教你写一个Matlab App(一)
  14. spring容器的懒加载lazy-init设置
  15. 李宏毅Transformer
  16. JAVA外卖项目第一天 技术选型和包结构
  17. 【笔记】嵌入式C语言随堂笔记
  18. UE4学习(一)C++编程官方文档解读
  19. social network社交网络资料汇总
  20. Vue.js学习笔记 2022 04 17

热门文章

  1. 正则引擎入门——基于虚拟机的正则匹配(二)
  2. 教你自由裁切每段视频的画面,横竖屏都支持
  3. 【教程】 .Net环境和开发工具Visual Studio的安装
  4. Jackson详情分析:用于诊断和疾病监测的血清学检测
  5. SHT30温湿度传感器应用笔记
  6. JAVA毕业设计Vue.js网上书城管理系统设计与实现服务端计算机源码+lw文档+系统+调试部署+数据库
  7. 将本地数据倒入到Hive
  8. uc/OS-II操作系统移植:uc/OS-II移植到STM32流程(文章末尾附实例)
  9. STM8S开发入门之使用EWSTM8(IAR STM8S)新建工程点亮一个LED(基于STM8S001J3)
  10. 护眼台灯哪个品牌更好?2022年最值得入手的护眼台灯