From c53c61155ac643ed655a70e3eeb1d939c152813c Mon Sep 17 00:00:00 2001
From: yangyuhao <291808500@qq.com>
Date: Fri, 8 Sep 2023 18:13:30 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=B1=B3=E5=92=8C=E7=BA=A2=E7=B1=B3?=
=?UTF-8?q?=E4=B8=8D=E8=AF=B7=E6=B1=82=E6=8E=A8=E9=80=81token?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
circle_app/android/app/build.gradle | 4 +-
.../android/app/src/main/AndroidManifest.xml | 3 ++
.../tim_uikit_text_field_layout/narrow.dart | 30 +++++++++++--
.../lib/app/dialog/YesAgreementDialog.dart | 42 ++++++++++++-------
circle_app/lib/main.dart | 23 ++++++++++
5 files changed, 82 insertions(+), 20 deletions(-)
diff --git a/circle_app/android/app/build.gradle b/circle_app/android/app/build.gradle
index eed052d..d716e75 100644
--- a/circle_app/android/app/build.gradle
+++ b/circle_app/android/app/build.gradle
@@ -65,8 +65,8 @@ android {
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion 21
targetSdkVersion flutter.targetSdkVersion
- versionCode 11
- versionName "1.1.0"
+ versionCode 13
+ versionName "1.1.2"
manifestPlaceholders = [
vivo_APPID: "105669716",
vivo_APPKEY:"84f750207787376b310ca5b0d5969122",
diff --git a/circle_app/android/app/src/main/AndroidManifest.xml b/circle_app/android/app/src/main/AndroidManifest.xml
index f7243ff..838bce2 100644
--- a/circle_app/android/app/src/main/AndroidManifest.xml
+++ b/circle_app/android/app/src/main/AndroidManifest.xml
@@ -24,6 +24,9 @@
android:name="android.permission.READ_MEDIA_IMAGES"/>
+
+
+
diff --git a/circle_app/lib/app/chat/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field_layout/narrow.dart b/circle_app/lib/app/chat/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field_layout/narrow.dart
index 7dc7e82..428c477 100644
--- a/circle_app/lib/app/chat/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field_layout/narrow.dart
+++ b/circle_app/lib/app/chat/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field_layout/narrow.dart
@@ -157,6 +157,7 @@ class TIMTextFieldLayoutNarrow extends StatefulWidget {
class _TIMTextFieldLayoutNarrowState
extends TIMUIKitState {
+
final TUISettingModel settingModel = serviceLocator();
final ImagePicker _picker = ImagePicker();
@@ -838,12 +839,14 @@ class _TIMTextFieldLayoutNarrowState
return;
}
+ await requestStoragePermission();
+
XFile? pickedFile;
String? thumbnailPath; // 声明 thumbnailPath 变量
try {
pickedFile = await _picker.pickVideo(
- source: imageSource,
+ source: imageSource, maxDuration: const Duration(seconds: 30)
);
if (pickedFile == null) {
return;
@@ -938,20 +941,39 @@ class _TIMTextFieldLayoutNarrowState
if (!isOK) {
return;
}
-
+ await requestStoragePermission();
try {
final XFile? pickedFile = await _picker.pickImage(
source: ImageSource.camera,
);
+ if(null==pickedFile){
+ return;
+ }
widget.model.sendImageMessage(
- imagePath: pickedFile!.path,
+ imagePath: pickedFile.path,
convID: widget.conversationID,
convType: widget.conversationType,
inputElement: context);
- var data = await DioManager.instance.get(url: Api.getAddTrialCount + "1");
+ DioManager.instance.get(url: Api.getAddTrialCount + "1");
} catch (e) {}
}
+ //实在找不到问题 先加个权限试试
+ Future requestStoragePermission() async {
+ final status = await Permission.storage.request();
+ if (status.isGranted) {
+ // 权限已授予,可以执行存储操作
+ } else if (status.isDenied) {
+ showOKToast("请打开存储权限。将为你带来更好的服务");
+ // 权限被拒绝,您可以显示一条消息来解释为什么需要权限
+ } else if (status.isPermanentlyDenied) {
+ showOKToast("请打开存储权限。将为你带来更优的服务");
+ // 权限被永久拒绝,用户无法在应用程序内授予权限
+ // 您可以引导用户进入应用程序设置以手动启用权限
+ }
+ }
+
+
_handleCameraAndMic() async {
// // 请求权限
// Map permissions = await PermissionHandler().requestPermissions(
diff --git a/circle_app/lib/app/dialog/YesAgreementDialog.dart b/circle_app/lib/app/dialog/YesAgreementDialog.dart
index 0e5dcc7..76fabf4 100644
--- a/circle_app/lib/app/dialog/YesAgreementDialog.dart
+++ b/circle_app/lib/app/dialog/YesAgreementDialog.dart
@@ -2,6 +2,7 @@ import 'dart:ffi';
import 'dart:io';
import 'package:connectivity/connectivity.dart';
+import 'package:device_info/device_info.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
@@ -198,21 +199,34 @@ class _CustomDialogState extends State {
if (Platform.isAndroid) {
initWxApi();
}
- final CoreServicesImpl coreInstance = TIMUIKitCore.getInstance();
- await ChannelPush.init((msg) {});
-
- int? businessID = await TimUiKitPushPlugin.getBuzId(PushConfig.appInfo);
-
- String token = await ChannelPush.getDeviceToken();
- ChannelPush.uploadToken();
-
- print("token=" + token);
- if (token != "") {
- V2TimCallback res = await coreInstance.setOfflinePushConfig(
- token: token, businessID: businessID);
-
- print("token=" + res.code.toString());
+ AndroidDeviceInfo androidInfo;
+ try {
+ DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
+ androidInfo = await deviceInfo.androidInfo;
+ } catch (e) {
+ // 处理异常
+ return true;
}
+ if (androidInfo.brand == 'Xiaomi'||androidInfo.brand == 'Redmi') {
+
+ }else{
+ final CoreServicesImpl coreInstance = TIMUIKitCore.getInstance();
+ await ChannelPush.init((msg) {});
+
+ int? businessID = await TimUiKitPushPlugin.getBuzId(PushConfig.appInfo);
+
+ String token = await ChannelPush.getDeviceToken();
+ ChannelPush.uploadToken();
+
+ print("token=" + token);
+ if (token != "") {
+ V2TimCallback res = await coreInstance.setOfflinePushConfig(
+ token: token, businessID: businessID);
+
+ print("token=" + res.code.toString());
+ }
+ }
+
return true;
}
diff --git a/circle_app/lib/main.dart b/circle_app/lib/main.dart
index 4232715..acef58f 100644
--- a/circle_app/lib/main.dart
+++ b/circle_app/lib/main.dart
@@ -13,10 +13,12 @@ import 'package:circle_app/util/SharedPreferencesHelper.dart';
import 'package:circle_app/util/device.dart';
import 'package:circle_app/util/util.dart';
import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
+import 'package:image_picker/image_picker.dart';
import 'package:oktoast/oktoast.dart';
import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart';
import 'package:tencent_cloud_chat_uikit/data_services/core/core_services.dart';
@@ -36,8 +38,29 @@ void main() {
WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
runApp(const MyApp());
+ getLostData();
}
+Future getLostData() async {
+ final ImagePicker picker = ImagePicker();
+ final LostDataResponse response = await picker.retrieveLostData();
+ if (response.isEmpty) {
+ return;
+ }
+ final List? files = response.files;
+ if (files != null) {
+ _handleLostFiles(files);
+ } else {
+ _handleError(response.exception);
+ }
+}
+void _handleLostFiles(List file) {}
+Future _handleError(dynamic error) async {
+ // 处理错误,例如记录错误或显示错误消息
+ print('Error occurred: $error');
+ // 在界面上显示错误消息
+ showToast('内存异常,请重新上传');
+}
int IM_SDK_APP_ID = 1400799631;
String IOS_APP_ID = "";