From 2a8a7cc5b69601c167815b7a7d5db479f091bdde Mon Sep 17 00:00:00 2001 From: jia Date: Tue, 10 Dec 2024 22:49:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=80=E4=BA=9B=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iFish7/build.gradle | 24 +-- .../com/ifish/activity/BrandActivity.java | 2 - .../com/ifish/activity/ImageSeeActivity.java | 62 ++++--- .../com/ifish/activity/LoadingActivity.java | 43 +++++ .../activity/LookAtReportShareActivity.java | 74 ++++---- .../com/ifish/activity/MainTabActivity.java | 4 - .../com/ifish/activity/MonitorActivity.java | 2 - .../com/ifish/baseclass/BaseApplication.java | 63 ++----- .../ifish/fragment/CameraGalleryFragment.java | 56 ++++--- .../java/com/ifish/fragment/MineFragment.java | 69 ++++---- .../main/java/com/ifish/utils/ImageKtUtil.kt | 45 +++++ .../java/com/ifish/utils/WeChatManager.java | 158 ++++++++++++++++++ 12 files changed, 394 insertions(+), 208 deletions(-) create mode 100644 iFish7/src/main/java/com/ifish/utils/ImageKtUtil.kt create mode 100644 iFish7/src/main/java/com/ifish/utils/WeChatManager.java diff --git a/iFish7/build.gradle b/iFish7/build.gradle index acb9035a8..3ea4de456 100644 --- a/iFish7/build.gradle +++ b/iFish7/build.gradle @@ -107,10 +107,8 @@ dependencies { implementation 'jp.wasabeef:picasso-transformations:2.1.0' //Picasso 显示圆形图片 implementation 'com.google.android.material:material:1.0.0'//1.0.0 -// implementation 'com.github.bumptech.glide:glide:3.7.0' implementation 'com.github.bumptech.glide:glide:4.15.1'//4.11.0 implementation 'androidx.core:core-ktx:1.10.1'//1.10.1 -// implementation 'androidx.activity:activity:1.8.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'//4.11.0 //Glide @@ -119,11 +117,11 @@ dependencies { implementation project(':JCVideo_Library') implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3' implementation files('libs/mina-core-2.0.17.jar') - implementation files('libs/fastjson-1.1.34.android.jar') +// implementation files('libs/fastjson-1.1.34.android.jar') // implementation 'com.p2p.core:p2p-core:0.4.4.9' implementation(name: 'p2p-core-release', ext: 'aar') - implementation(name: 'pano-release', ext: 'aar') +// implementation(name: 'pano-release', ext: 'aar') // jjia implementation(name: 'soundwave-release', ext: 'aar') implementation 'com.libhttp:libhttp:v0.5.5' /*implementation 'com.jwkj:UDPUtilsLib:v1.1.1'*/ @@ -134,15 +132,10 @@ dependencies { implementation files('libs/httpcore-4.4.13.jar') implementation files('libs/httpclient-4.5.12.jar') implementation 'com.zhy:autolayout:1.4.5' -// implementation 'com.tencent.bugly:crashreport:latest.release' -// implementation 'com.tencent.bugly:nativecrashreport:latest.release' - //UDP功能模块库 //UDP基础库(不可少) implementation 'com.jwkj:udpsender:v2.0.2' implementation(name: 'UDPUtilsLib-v1.1.1', ext: 'aar') -// implementation 'com.github.jwkj:SoundWaveSender:v2.0.2' - //摇杆空间 implementation 'com.github.kongqw:AndroidRocker:1.0.1' @@ -159,20 +152,15 @@ dependencies { // 友盟基础组件库(所有友盟业务SDK都依赖基础组件库 - implementation 'com.umeng.umsdk:common:9.6.6'// (必选) - implementation 'com.umeng.umsdk:asms:1.8.0'// 必选 - implementation 'com.umeng.umsdk:share-core:7.3.3'//分享核心库,必选 +// implementation 'com.umeng.umsdk:common:9.6.6'// (必选) +// implementation 'com.umeng.umsdk:asms:1.8.0'// 必选 +// implementation 'com.umeng.umsdk:share-core:7.3.3'//分享核心库,必选 //在线依赖目前支持QQ、微信、新浪微博、支付宝、钉钉、抖音;若需支持其他平台,请选择手动下载SDK - implementation 'com.umeng.umsdk:share-wx:7.3.3' //微信完整版 +// implementation 'com.umeng.umsdk:share-wx:7.3.3' //微信完整版 implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.24'//微信官方依赖库 implementation 'androidx.appcompat:appcompat:1.6.1'//1.3.0 implementation 'androidx.constraintlayout:constraintlayout:2.0.4'//2.0.4 - - //友盟分享 -// implementation files('libs/umeng_social_sdk.jar') - implementation 'com.tencent:mmkv:2.0.0' - implementation("com.github.bumptech.glide:okhttp3-integration:4.11.0" ) // implementation 'com.github.Jasonchenlijian:FastBle:2.4.0' // diff --git a/iFish7/src/main/java/com/ifish/activity/BrandActivity.java b/iFish7/src/main/java/com/ifish/activity/BrandActivity.java index fb7bbf0ff..e51d03e15 100644 --- a/iFish7/src/main/java/com/ifish/activity/BrandActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/BrandActivity.java @@ -16,7 +16,6 @@ import com.ifish.baseclass.BaseActivity; import com.ifish.utils.Commons.NetWork; import com.ifish.utils.Commons.Text; import com.ifish.utils.ToastUtil; -import com.umeng.socialize.UMShareAPI; /** * @ClassName: BrandActivity @@ -67,7 +66,6 @@ public class BrandActivity extends BaseActivity { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); /** attention to this below ,must add this**/ - UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); } } diff --git a/iFish7/src/main/java/com/ifish/activity/ImageSeeActivity.java b/iFish7/src/main/java/com/ifish/activity/ImageSeeActivity.java index 72750bd20..37a0784c2 100644 --- a/iFish7/src/main/java/com/ifish/activity/ImageSeeActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/ImageSeeActivity.java @@ -26,12 +26,7 @@ import com.ifish.utils.Commons.Text; import com.ifish.utils.HttpListener; import com.ifish.utils.HttpManager; import com.ifish.utils.ToastUtil; -import com.umeng.socialize.ShareAction; -import com.umeng.socialize.UMShareAPI; -import com.umeng.socialize.UMShareListener; -import com.umeng.socialize.bean.SHARE_MEDIA; -import com.umeng.socialize.media.UMImage; -import com.umeng.socialize.media.UMWeb; +import com.ifish.utils.WeChatManager; import java.io.File; import java.io.FileFilter; @@ -210,34 +205,35 @@ public class ImageSeeActivity extends BaseActivity { } }; private void share() {//微信 朋友圈 QQ 新浪 - UMWeb web =new UMWeb(HttpManager.LOOK_HTML_URL+data); - web.setTitle(Text.AppName);//标题 - new ShareAction(ImageSeeActivity.this).setDisplayList(SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.QQ,SHARE_MEDIA.SINA) - .withText(Text.AppName)//标题 - .withText(Text.ShareText)//文字 - .withMedia(new UMImage(ImageSeeActivity.this,BitmapFactory.decodeFile(files[mViewPager.getCurrentItem()].getAbsolutePath())))//把本地图片当作分享的img上传至友盟 - .withMedia(web)//附带的html网址 - .setCallback(umShareListener)//回调 - .open(); + WeChatManager.getInstance(this).shareFriends(this,Text.AppName,Text.ShareText,HttpManager.LOOK_HTML_URL+data,null,true); +// UMWeb web =new UMWeb(HttpManager.LOOK_HTML_URL+data); +// web.setTitle(Text.AppName);//标题 +// new ShareAction(ImageSeeActivity.this).setDisplayList(SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.QQ,SHARE_MEDIA.SINA) +// .withText(Text.AppName)//标题 +// .withText(Text.ShareText)//文字 +// .withMedia(new UMImage(ImageSeeActivity.this,BitmapFactory.decodeFile(files[mViewPager.getCurrentItem()].getAbsolutePath())))//把本地图片当作分享的img上传至友盟 +// .withMedia(web)//附带的html网址 +// .setCallback(umShareListener)//回调 +// .open(); } - private UMShareListener umShareListener = new UMShareListener() { - @Override - public void onStart(SHARE_MEDIA shareMedia) { - - } - - public void onResult(SHARE_MEDIA platform) { - EventBus.getDefault().post(new ShareWechatBean("ImageListActivty")); - } - public void onError(SHARE_MEDIA platform, Throwable t) {} - public void onCancel(SHARE_MEDIA platform) {} - }; - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - /** 友盟分享attention to this below ,must add this**/ - UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); - } +// private UMShareListener umShareListener = new UMShareListener() { +// @Override +// public void onStart(SHARE_MEDIA shareMedia) { +// +// } +// +// public void onResult(SHARE_MEDIA platform) { +// EventBus.getDefault().post(new ShareWechatBean("ImageListActivty")); +// } +// public void onError(SHARE_MEDIA platform, Throwable t) {} +// public void onCancel(SHARE_MEDIA platform) {} +// }; +// @Override +// protected void onActivityResult(int requestCode, int resultCode, Intent data) { +// super.onActivityResult(requestCode, resultCode, data); +// /** 友盟分享attention to this below ,must add this**/ +// UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); +// } } diff --git a/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java b/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java index e0cc561dd..2bc2fd394 100644 --- a/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/LoadingActivity.java @@ -30,7 +30,12 @@ import androidx.annotation.NonNull; import com.alibaba.sdk.android.httpdns.HttpDns; import com.alibaba.sdk.android.httpdns.HttpDnsService; +import com.alibaba.sdk.android.push.CloudPushService; +import com.alibaba.sdk.android.push.CommonCallback; +import com.alibaba.sdk.android.push.PushControlService; +import com.alibaba.sdk.android.push.huawei.HuaWeiRegister; import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory; +import com.alibaba.sdk.android.push.register.MiPushRegister; import com.bumptech.glide.Glide; import com.ifish.basebean.AdInfos; import com.ifish.basebean.BaseBean; @@ -890,6 +895,7 @@ public class LoadingActivity extends BaseActivityNotAnim { alertDialog.cancel(); SPUtil.getInstance(getApplicationContext()).putBoolean(firstShowPrivacy,true); // getPermission(); + pushInit(); initapp(); } }); @@ -897,4 +903,41 @@ public class LoadingActivity extends BaseActivityNotAnim { } + + private void pushInit(){ + PushServiceFactory.getPushControlService().setConnectionChangeListener(new PushControlService.ConnectionChangeListener() { + @Override + public void onConnect() { + Log.d("AliyunPush", "Aliyun Push connected"); + } + + @Override + public void onDisconnect(String s, String s1) { + Log.d("AliyunPush", "Aliyun Push disconnect, errorCode:" + s + " msg = " + s1); + } + }); + + + final CloudPushService pushService = PushServiceFactory.getCloudPushService(); + + //仅适用于Debug包,正式包不需要此行 + pushService.setLogLevel(CloudPushService.LOG_DEBUG); + + pushService.register(this, new CommonCallback() { + @Override + public void onSuccess(String response) { + Log.d("Init", "init cloudchannel success"); + Log.d("Initpushid", pushService.getDeviceId()); + } + + @Override + public void onFailed(String errorCode, String errorMessage) { + Log.d("Init", "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage); + } + }); + // 注册方法会自动判断是否支持小米系统推送,如不支持会跳过注册。 + MiPushRegister.register(this, "2882303761517421890", "5491742138890"); + // 注册方法会自动判断是否支持华为系统推送,如不支持会跳过注册。 + HuaWeiRegister.register(BaseApplication.app); + } } diff --git a/iFish7/src/main/java/com/ifish/activity/LookAtReportShareActivity.java b/iFish7/src/main/java/com/ifish/activity/LookAtReportShareActivity.java index 85a70f2d7..78ee652a7 100644 --- a/iFish7/src/main/java/com/ifish/activity/LookAtReportShareActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/LookAtReportShareActivity.java @@ -21,13 +21,9 @@ import com.ifish.utils.Commons; import com.ifish.utils.Commons.Text; import com.ifish.utils.HttpManager; import com.ifish.utils.ToastUtil; +import com.ifish.utils.WeChatManager; import com.squareup.picasso.Picasso; -import com.umeng.socialize.ShareAction; -import com.umeng.socialize.UMShareAPI; -import com.umeng.socialize.UMShareListener; -import com.umeng.socialize.bean.SHARE_MEDIA; -import com.umeng.socialize.media.UMImage; -import com.umeng.socialize.media.UMWeb; + /** * @@ -121,37 +117,39 @@ public class LookAtReportShareActivity extends BaseActivity { } } private void share() {//微信 朋友圈 QQ 新浪 - UMWeb web =new UMWeb(lookReport.htmlName); - web.setTitle(Text.AppName);//标题 - new ShareAction(LookAtReportShareActivity.this).setDisplayList(SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.QQ,SHARE_MEDIA.SINA) - .withText(Text.ShareReportTitle)//标题 - .withText(lookReport.suggestion)//文字 - .withMedia(new UMImage(LookAtReportShareActivity.this,HttpManager.LOOK_IMG_URL+lookReport.shareImg))//图片网址 - .withMedia(web)//附带的html网址 - .setCallback(umShareListener)//回调 - .open(); + + WeChatManager.getInstance(this).shareFriends(this,Text.ShareReportTitle,lookReport.suggestion,HttpManager.LOOK_IMG_URL+lookReport.shareImg,"",true); +// UMWeb web =new UMWeb(lookReport.suggestion); +// web.setTitle(Text.AppName);//标题 +// new ShareAction(LookAtReportShareActivity.this).setDisplayList(SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.QQ,SHARE_MEDIA.SINA) +// .withText(Text.ShareReportTitle)//标题 +// .withText(lookReport.suggestion)//文字 +// .withMedia(new UMImage(LookAtReportShareActivity.this,HttpManager.LOOK_IMG_URL+lookReport.shareImg))//图片网址 +// .withMedia(web)//附带的html网址 +// .setCallback(umShareListener)//回调 +// .open(); } - private UMShareListener umShareListener = new UMShareListener() { - @Override - public void onStart(SHARE_MEDIA shareMedia) { - - } - - public void onResult(SHARE_MEDIA platform) { - ToastUtil.show(LookAtReportShareActivity.this, Text.SHARESUCCESS); - goldValue(Commons.GoldTasksKey.SHARELOOKREPORT); - } - public void onError(SHARE_MEDIA platform, Throwable t) { - - } - public void onCancel(SHARE_MEDIA platform) { - - } - }; - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - /** 友盟分享attention to this below ,must add this**/ - UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); - } +// private UMShareListener umShareListener = new UMShareListener() { +// @Override +// public void onStart(SHARE_MEDIA shareMedia) { +// +// } +// +// public void onResult(SHARE_MEDIA platform) { +// ToastUtil.show(LookAtReportShareActivity.this, Text.SHARESUCCESS); +// goldValue(Commons.GoldTasksKey.SHARELOOKREPORT); +// } +// public void onError(SHARE_MEDIA platform, Throwable t) { +// +// } +// public void onCancel(SHARE_MEDIA platform) { +// +// } +// }; +// @Override +// protected void onActivityResult(int requestCode, int resultCode, Intent data) { +// super.onActivityResult(requestCode, resultCode, data); +// /** 友盟分享attention to this below ,must add this**/ +// UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); +// } } diff --git a/iFish7/src/main/java/com/ifish/activity/MainTabActivity.java b/iFish7/src/main/java/com/ifish/activity/MainTabActivity.java index 15be86789..92f9bc6bd 100644 --- a/iFish7/src/main/java/com/ifish/activity/MainTabActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/MainTabActivity.java @@ -75,8 +75,6 @@ import com.ifish.utils.UnreadCount; import com.ifish.view.DisplayUtil; import com.lidroid.xutils.http.HttpHandler; import com.p2p.core.P2PHandler; -import com.umeng.commonsdk.UMConfigure; -import com.umeng.socialize.UMShareAPI; import java.net.Socket; import java.util.ArrayList; @@ -128,7 +126,6 @@ public class MainTabActivity extends BaseFragmentActivity { //* 用初始化接口(如需要使用AndroidManifest.xml中配置好的appkey和channel值, //* UMConfigure.init调用中appkey和channel参数请置为null)。 //* 友盟分享SDK初始化 - UMConfigure.init(this,"","umeng",UMConfigure.DEVICE_TYPE_PHONE,""); } @Override @@ -181,7 +178,6 @@ public class MainTabActivity extends BaseFragmentActivity { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //重写分享回调 - UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); } private void onParseIntent() { diff --git a/iFish7/src/main/java/com/ifish/activity/MonitorActivity.java b/iFish7/src/main/java/com/ifish/activity/MonitorActivity.java index bd615c844..2191662d1 100644 --- a/iFish7/src/main/java/com/ifish/activity/MonitorActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/MonitorActivity.java @@ -93,7 +93,6 @@ import com.p2p.core.P2PHandler; import com.p2p.core.P2PValue; import com.p2p.core.P2PView; import com.squareup.picasso.Picasso; -import com.umeng.socialize.UMShareAPI; import java.io.File; import java.net.InetAddress; @@ -1887,7 +1886,6 @@ public class MonitorActivity extends BaseGradeMonitorActivity implements OnClick protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //重写分享回调 - UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); } public void onEventMainThread(ShareDevice event) {//分享鱼缸 diff --git a/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java b/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java index 185f55a34..ef55f3eca 100644 --- a/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java +++ b/iFish7/src/main/java/com/ifish/baseclass/BaseApplication.java @@ -44,8 +44,6 @@ import com.ifish.utils.TrustAllCerts; //import com.igexin.sdk.PushManager; import com.p2p.core.P2PSpecial.P2PSpecial; import com.squareup.picasso.Picasso; -import com.umeng.commonsdk.UMConfigure; -import com.umeng.socialize.PlatformConfig; import java.security.SecureRandom; import java.util.UUID; @@ -91,7 +89,7 @@ public class BaseApplication extends MultiDexApplication { app = this; initCrashSDK(); // initLocationSDK(); - initShareSDK(); +// initShareSDK(); // initSMSSDK(); // initAlibcTradeSDK(); initalipushSDK(); @@ -266,40 +264,7 @@ public class BaseApplication extends MultiDexApplication { mNotificationManager.createNotificationChannel(mChannel); } - PushServiceFactory.getPushControlService().setConnectionChangeListener(new PushControlService.ConnectionChangeListener() { - @Override - public void onConnect() { - Log.d("AliyunPush", "Aliyun Push connected"); - } - @Override - public void onDisconnect(String s, String s1) { - Log.d("AliyunPush", "Aliyun Push disconnect, errorCode:" + s + " msg = " + s1); - } - }); - - - final CloudPushService pushService = PushServiceFactory.getCloudPushService(); - - //仅适用于Debug包,正式包不需要此行 - pushService.setLogLevel(CloudPushService.LOG_DEBUG); - - pushService.register(this, new CommonCallback() { - @Override - public void onSuccess(String response) { - Log.d("Init", "init cloudchannel success"); - Log.d("Initpushid", pushService.getDeviceId()); - } - - @Override - public void onFailed(String errorCode, String errorMessage) { - Log.d("Init", "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage); - } - }); - // 注册方法会自动判断是否支持小米系统推送,如不支持会跳过注册。 - MiPushRegister.register(this, "2882303761517421890", "5491742138890"); - // 注册方法会自动判断是否支持华为系统推送,如不支持会跳过注册。 - HuaWeiRegister.register(this); } // private void initSMSSDK() {//初始化MOB短信 SDK @@ -312,19 +277,19 @@ public class BaseApplication extends MultiDexApplication { } //初始化友盟社会化分享 - private void initShareSDK() { - // 友盟社会化分享SDK预初始化函数 - // preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验 - UMConfigure.preInit(this, "55f7d5bfe0f55a14770001da", "ifish"); - /** - * 在微博开放平台设置的授权回调REDIRECT_URL必须与代码中设置一致 http://open.weibo.com/apps/1240247140/info/advanced - */ -// Config.REDIRECT_URL = "http://sns.whalecloud.com/sina2/callback"; - PlatformConfig.setWeixin("wxb3b27d653ec3e3cb", "79d35215d7ef369b927f7cb21a2b8ff6"); - PlatformConfig.setWXFileProvider("com.ifish.activity.fileprovider"); -// PlatformConfig.setSinaWeibo("1240247140", "d5825aae9f4c8552b60e112b42c345f3"); -// PlatformConfig.setQQZone("1105206998", "rTiJNwzYY79DExD9"); - } +// private void initShareSDK() { +// // 友盟社会化分享SDK预初始化函数 +// // preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验 +// UMConfigure.preInit(this, "55f7d5bfe0f55a14770001da", "ifish"); +// /** +// * 在微博开放平台设置的授权回调REDIRECT_URL必须与代码中设置一致 http://open.weibo.com/apps/1240247140/info/advanced +// */ +//// Config.REDIRECT_URL = "http://sns.whalecloud.com/sina2/callback"; +// PlatformConfig.setWeixin("wxb3b27d653ec3e3cb", "79d35215d7ef369b927f7cb21a2b8ff6"); +// PlatformConfig.setWXFileProvider("com.ifish.activity.fileprovider"); +//// PlatformConfig.setSinaWeibo("1240247140", "d5825aae9f4c8552b60e112b42c345f3"); +//// PlatformConfig.setQQZone("1105206998", "rTiJNwzYY79DExD9"); +// } public boolean inMainProcess() { String packageName = getPackageName(); diff --git a/iFish7/src/main/java/com/ifish/fragment/CameraGalleryFragment.java b/iFish7/src/main/java/com/ifish/fragment/CameraGalleryFragment.java index 8cdc9aee3..a1ec5f1ad 100644 --- a/iFish7/src/main/java/com/ifish/fragment/CameraGalleryFragment.java +++ b/iFish7/src/main/java/com/ifish/fragment/CameraGalleryFragment.java @@ -8,6 +8,7 @@ package com.ifish.fragment; import android.content.Intent; +import android.graphics.Bitmap; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; @@ -31,12 +32,10 @@ import com.ifish.baseclass.BaseFragment; import com.ifish.geewe.CameraScreenShot; import com.ifish.utils.AnimationUtil; import com.ifish.utils.Commons; +import com.ifish.utils.ImageKtUtil; import com.ifish.utils.L; import com.ifish.utils.ToastUtil; -import com.umeng.socialize.ShareAction; -import com.umeng.socialize.UMShareListener; -import com.umeng.socialize.bean.SHARE_MEDIA; -import com.umeng.socialize.media.UMImage; +import com.ifish.utils.WeChatManager; import de.greenrobot.event.EventBus; @@ -140,10 +139,13 @@ public class CameraGalleryFragment extends BaseFragment { if (!LoadingActivity.api.isWXAppInstalled()) { Toast.makeText(getActivity(), "您的设备未安装微信客户端", Toast.LENGTH_SHORT).show(); } - new ShareAction(getActivity()).setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE) - .withMedia(new UMImage(getActivity(), R.drawable.shareifishapp)) - .setCallback(umShareListener) - .share(); + + Bitmap bitmap = ImageKtUtil.drawableToBitmap(getActivity(),getActivity().getDrawable(R.drawable.shareifishapp)); + WeChatManager.getInstance(getActivity()).shareFriendsImage(bitmap,true); +// new ShareAction(getActivity()).setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE) +// .withMedia(new UMImage(getActivity(), R.drawable.shareifishapp)) +// .setCallback(umShareListener) +// .share(); break; case R.id.tv_video://视频录制 case R.id.iv_video: @@ -170,23 +172,23 @@ public class CameraGalleryFragment extends BaseFragment { } //分享回调 - private UMShareListener umShareListener = new UMShareListener() { - @Override - public void onStart(SHARE_MEDIA shareMedia) { - - } - - @Override - public void onResult(SHARE_MEDIA platform) { - EventBus.getDefault().post(new ShareWechatBean("DeviceFragment")); - } - - @Override - public void onError(SHARE_MEDIA platform, Throwable t) { - } - - @Override - public void onCancel(SHARE_MEDIA platform) { - } - }; +// private UMShareListener umShareListener = new UMShareListener() { +// @Override +// public void onStart(SHARE_MEDIA shareMedia) { +// +// } +// +// @Override +// public void onResult(SHARE_MEDIA platform) { +// EventBus.getDefault().post(new ShareWechatBean("DeviceFragment")); +// } +// +// @Override +// public void onError(SHARE_MEDIA platform, Throwable t) { +// } +// +// @Override +// public void onCancel(SHARE_MEDIA platform) { +// } +// }; } diff --git a/iFish7/src/main/java/com/ifish/fragment/MineFragment.java b/iFish7/src/main/java/com/ifish/fragment/MineFragment.java index d2b31b41d..c2b96684d 100644 --- a/iFish7/src/main/java/com/ifish/fragment/MineFragment.java +++ b/iFish7/src/main/java/com/ifish/fragment/MineFragment.java @@ -16,6 +16,7 @@ import android.app.Dialog; import android.app.NotificationManager; import android.content.DialogInterface; import android.content.Intent; +import android.graphics.Bitmap; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -67,22 +68,17 @@ import com.ifish.utils.Commons.NetWork; import com.ifish.utils.Commons.Text; import com.ifish.utils.HttpListener; import com.ifish.utils.HttpManager; +import com.ifish.utils.ImageKtUtil; import com.ifish.utils.L; import com.ifish.utils.SPUtil; import com.ifish.utils.ToastUtil; +import com.ifish.utils.WeChatManager; import com.ifish.view.CircleImageView; import com.lidroid.xutils.HttpUtils; import com.lidroid.xutils.exception.HttpException; import com.lidroid.xutils.http.ResponseInfo; import com.lidroid.xutils.http.callback.RequestCallBack; -import com.lidroid.xutils.util.LogUtils; import com.p2p.core.P2PHandler; -import com.squareup.picasso.Picasso; -import com.umeng.socialize.ShareAction; -import com.umeng.socialize.UMShareListener; -import com.umeng.socialize.bean.SHARE_MEDIA; -import com.umeng.socialize.media.UMImage; - import java.io.File; import java.lang.reflect.Field; @@ -440,11 +436,14 @@ public class MineFragment extends BaseV4Fragment { if (!LoadingActivity.api.isWXAppInstalled()) { Toast.makeText(getActivity(), "您的设备未安装微信客户端", Toast.LENGTH_SHORT).show(); } - UMImage image = new UMImage(getActivity(), R.drawable.shareifishapp);//资源文件 - new ShareAction(getActivity()).setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE) - .withMedia(image) - .setCallback(umShareListener) - .share(); + Bitmap bitmap = ImageKtUtil.drawableToBitmap(getActivity(), getActivity().getResources().getDrawable(R.drawable.shareifishapp)); + WeChatManager.getInstance(getActivity()).shareFriendsImage(bitmap,true); + +// UMImage image = new UMImage(getActivity(), R.drawable.shareifishapp);//资源文件 +// new ShareAction(getActivity()).setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE) +// .withMedia(image) +// .setCallback(umShareListener) +// .share(); break; case R.id.rl_tellus://我有话说 i.setClass(getActivity(), TellIfishActivity.class); @@ -475,29 +474,29 @@ public class MineFragment extends BaseV4Fragment { } //分享回调 - private UMShareListener umShareListener = new UMShareListener() { - @Override - public void onStart(SHARE_MEDIA shareMedia) { - LogUtils.d("ifish LHD 分享回调 onStart"); - } - - @Override - public void onResult(SHARE_MEDIA platform) { - LogUtils.d("ifish LHD 分享回调 onResult "+platform); - ToastUtil.show(getActivity(), Text.SHARESUCCESS); - goldValue(Commons.GoldTasksKey.SHAREIFISHAPP); - } - - @Override - public void onError(SHARE_MEDIA platform, Throwable t) { - LogUtils.e("ifish LHD 分享回调 onError "+platform); - } - - @Override - public void onCancel(SHARE_MEDIA platform) { - LogUtils.e("ifish LHD 分享回调 onCancel "+platform); - } - }; +// private UMShareListener umShareListener = new UMShareListener() { +// @Override +// public void onStart(SHARE_MEDIA shareMedia) { +// LogUtils.d("ifish LHD 分享回调 onStart"); +// } +// +// @Override +// public void onResult(SHARE_MEDIA platform) { +// LogUtils.d("ifish LHD 分享回调 onResult "+platform); +// ToastUtil.show(getActivity(), Text.SHARESUCCESS); +// goldValue(Commons.GoldTasksKey.SHAREIFISHAPP); +// } +// +// @Override +// public void onError(SHARE_MEDIA platform, Throwable t) { +// LogUtils.e("ifish LHD 分享回调 onError "+platform); +// } +// +// @Override +// public void onCancel(SHARE_MEDIA platform) { +// LogUtils.e("ifish LHD 分享回调 onCancel "+platform); +// } +// }; private void logout() { Builder dialog1 = new Builder(getActivity(), AlertDialog.THEME_HOLO_LIGHT); diff --git a/iFish7/src/main/java/com/ifish/utils/ImageKtUtil.kt b/iFish7/src/main/java/com/ifish/utils/ImageKtUtil.kt new file mode 100644 index 000000000..fcfb74c04 --- /dev/null +++ b/iFish7/src/main/java/com/ifish/utils/ImageKtUtil.kt @@ -0,0 +1,45 @@ +package com.ifish.utils + +import android.app.Activity +import android.graphics.Bitmap +import android.graphics.Canvas +import android.graphics.PixelFormat +import android.graphics.drawable.Drawable +import java.io.ByteArrayOutputStream + +class ImageKtUtil { + companion object { + + @JvmStatic + //将Drawable转化为Bitmap + fun drawableToBitmap(activity: Activity, drawable: Drawable): Bitmap? { + val width = drawable.intrinsicWidth + val height = drawable.intrinsicHeight + val bitmap = Bitmap.createBitmap( + width, height, + if (drawable.opacity != PixelFormat.OPAQUE) Bitmap.Config.ARGB_8888 else Bitmap.Config.RGB_565 + ) + val canvas = Canvas(bitmap) + drawable.setBounds(0, 0, width, height) + canvas.drawColor(activity.resources.getColor(android.R.color.white)) + drawable.draw(canvas) + return bitmap + } + + @JvmStatic + fun bmpToByteArray(bmp: Bitmap, needRecycle: Boolean): ByteArray? { + val output = ByteArrayOutputStream() + bmp.compress(Bitmap.CompressFormat.PNG, 80, output) + if (needRecycle) { + bmp.recycle() + } + val result = output.toByteArray() + try { + output.close() + } catch (e: Exception) { + e.printStackTrace() + } + return result + } + } +} \ No newline at end of file diff --git a/iFish7/src/main/java/com/ifish/utils/WeChatManager.java b/iFish7/src/main/java/com/ifish/utils/WeChatManager.java new file mode 100644 index 000000000..1c6bee640 --- /dev/null +++ b/iFish7/src/main/java/com/ifish/utils/WeChatManager.java @@ -0,0 +1,158 @@ +package com.ifish.utils; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Bitmap; +import android.text.TextUtils; + +import com.bumptech.glide.Glide; +import com.ifish.activity.R; +import com.tencent.mm.opensdk.constants.Build; +import com.tencent.mm.opensdk.modelbiz.WXOpenCustomerServiceChat; +import com.tencent.mm.opensdk.modelmsg.SendAuth; +import com.tencent.mm.opensdk.modelmsg.SendMessageToWX; +import com.tencent.mm.opensdk.modelmsg.WXImageObject; +import com.tencent.mm.opensdk.modelmsg.WXMediaMessage; +import com.tencent.mm.opensdk.modelmsg.WXWebpageObject; +import com.tencent.mm.opensdk.openapi.IWXAPI; +import com.tencent.mm.opensdk.openapi.WXAPIFactory; + + +public class WeChatManager { + // APP_ID 替换为你的应用从官方网站申请到的合法appID + private String WEIXIN_APP_ID; + + // IWXAPI 是第三方app和微信通信的openApi接口 + private IWXAPI api; + private static WeChatManager mManager; + + private Context context; + + public WeChatManager(Context context) { + this.context = context; + WEIXIN_APP_ID = "wxb3b27d653ec3e3cb"; + } + + + public static WeChatManager getInstance(Context context) { + if (mManager == null) { + synchronized (WeChatManager.class) { + if (mManager == null) { + mManager = new WeChatManager(context); + } + } + } + return mManager; + } + + + public IWXAPI getIWxApi() { + // 通过WXAPIFactory工厂,获取IWXAPI的实例 + if (api == null) { + api = WXAPIFactory.createWXAPI(context, WEIXIN_APP_ID, false); + // 将应用的appId注册到微信 + api.registerApp(WEIXIN_APP_ID); + } + + return api; + } + + /** + * 判断微信客户端是否安装 + */ + public boolean iSWXAppInstalledAndSupported() { + return getIWxApi().isWXAppInstalled(); + } + + private String buildTransaction(final String type) { + return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis(); + } + + + public void shareFriends(Activity activity, String title, String description, String url, String imageUrl, boolean flag) { + if (TextUtils.isEmpty(imageUrl)) { + Bitmap bitmap = ImageKtUtil.drawableToBitmap(activity, activity.getResources().getDrawable(R.drawable.app_icon)); + toShare(title, description, url, bitmap, flag); + } else { + new Thread() { + public void run() { + try { + + + Bitmap myBitmap = Glide.with(activity) + .asBitmap() + .load(imageUrl) + .submit(100, 100).get(); + Bitmap bitmap = Bitmap.createBitmap(myBitmap, 0, 0, myBitmap.getWidth(), myBitmap.getHeight()); + toShare(title, description, url, bitmap, flag); + } catch (Exception e) { + e.printStackTrace(); + } + } + + }.start(); + } + + } + + public void toShare(String title, String description, String url, Bitmap bitmap, boolean flag) { + + byte[] bit = ImageKtUtil.bmpToByteArray(bitmap, false); + WXWebpageObject webpage = new WXWebpageObject(); + webpage.webpageUrl = url; + final WXMediaMessage msg = new WXMediaMessage(webpage); + msg.title = title; + msg.description = description; + msg.thumbData = bit; + SendMessageToWX.Req req = new SendMessageToWX.Req(); + req.transaction = buildTransaction("webpage"); + req.message = msg; + req.scene = flag ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; + getIWxApi().sendReq(req); + } + + public void shareFriendsImage(Bitmap bmp, boolean flag) { + + WXImageObject imgObj = new WXImageObject(bmp); + WXMediaMessage msg = new WXMediaMessage(); + msg.mediaObject = imgObj; + + double scale = bmp.getHeight() * 1.0 / bmp.getWidth(); + + + Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 200, (int) (200 * scale), true); + bmp.recycle(); + msg.thumbData = ImageKtUtil.bmpToByteArray(thumbBmp, true); + + SendMessageToWX.Req req = new SendMessageToWX.Req(); + req.transaction = buildTransaction("img"); + req.message = msg; + req.scene = flag ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; + getIWxApi().sendReq(req); + } + + + public void login() { + final SendAuth.Req req = new SendAuth.Req(); + req.scope = "snsapi_userinfo,snsapi_friend,snsapi_message,snsapi_contact"; + req.state = "water"; + if (api == null) { + api = getIWxApi(); + } + api.sendReq(req); + } + + + /** + * 企业客服 + */ + public void toCallus() { + IWXAPI api = getIWxApi(); + if (api.getWXAppSupportAPI() >= Build.SUPPORT_OPEN_CUSTOMER_SERVICE_CHAT) { + WXOpenCustomerServiceChat.Req req = new WXOpenCustomerServiceChat.Req(); + req.corpId = "xxxx"; // 企业ID + req.url = "https://work.weixin.qq.com/kfid/kfcxxxxx"; // 客服URL + api.sendReq(req); + } + } +}