接入文档  微信开放文档 (qq.com)

dependencies {
    api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
}

调用接口:

String appId = "wxd930ea5d5a258f4f"; // 填移动应用(App)的 AppId,非小程序的 AppID
IWXAPI api = WXAPIFactory.createWXAPI(context, appId);

WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_d43f693ca31f"; // 填小程序原始id
req.path = path;                  拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
api.sendReq(req);

在WXEntryActivity中添加回调:

public void onResp(BaseResp resp) {
    if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
        WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
        String extraData =launchMiniProResp.extMsg; //对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性
    }
}

接入微信就那么多东西,该加的都加了,结果不能调起微信,还是一点反应没有,开放平台上的签名和包名检查了一遍又一遍,也没问题,换个签名文件也不行,重新接也不行,最后看了源码debu报的是“sendReq failed for wechat app signature check failed”,网上一查,开放平台有个回复是Android11兼容性问题,链接是微信开放平台,原来上面说是为了Android 11 版本为加强用户隐私保护引入较多变更,第三方应用需要适配的有两个变更:

1.软件包可见性变更,会导致第三方应用通过 OpenSDK 接口拉起微信受限,从而影响分享消息到微信、拉起小程序等功能的正常使用(该变更只对升级targetSdkVersion=30 的应用产生影响)。

2.强制执行分区存储:该变更会影响第三方应用分享包含文件路径的消息(如图片类型消息),无论第三方应用targetSdkVersion是否升级为30,均需要进行适配。

为避免未及时适配带来的使用问题,请开发者尽快适配。

1. 软件可见性适配方案

1.1 根据 Android 官方给出的适配方案,在主工程的AndroidManifest.xml 中增加 标签,即可解决以上影响,代码如下:

<manifest package="com.example.app">

      ...

      // 在应用的AndroidManifest.xml添加如下<queries>标签
    <queries>
        <package android:name="com.tencent.mm" />   // 指定微信包名
    </queries>

      ...

</manifest>

1.2 添加以上标签之后,需要开发者升级编译工具,否则会出现编译错误。

1)Android Studio 需要升级至 3.3 及以上,建议升级至 4.0 及以上版本;

2)Android SDK Build-Tools 需要升级至 30 及以上版本;

3)com.android.tools.build:gradle 需要升级至 3.6.0 版本,建议升级至最新的 3.6.4 版本。

按照上面添加后,果然成功,感觉遇到第三方sdk问题还是得扒官方社区和公告,看官方demo都没问题,还以为与手机版本没关系,结果确是有关系,感觉任何时候都不能忽略版本兼容带来得疑难杂症啊