diff --git a/android/app/proguard-rules-sky.pro b/android/app/proguard-rules-sky.pro
index e6743aff..d8df8d76 100644
--- a/android/app/proguard-rules-sky.pro
+++ b/android/app/proguard-rules-sky.pro
@@ -128,4 +128,7 @@
}
-keep class com.tencent.mm.sdk.** { *; }
--keep class com.tencent.mm.opensdk.** { *; }
\ No newline at end of file
+-keep class com.tencent.mm.opensdk.** { *; }
+
+-dontwarn com.tencent.bugly.**
+-keep public class com.tencent.bugly.**{*;}
\ No newline at end of file
diff --git a/android/app/proguard-rules-xhj.pro b/android/app/proguard-rules-xhj.pro
index c18c6b01..78db18c1 100644
--- a/android/app/proguard-rules-xhj.pro
+++ b/android/app/proguard-rules-xhj.pro
@@ -128,4 +128,7 @@
}
-keep class com.tencent.mm.sdk.** { *; }
--keep class com.tencent.mm.opensdk.** { *; }
\ No newline at end of file
+-keep class com.tencent.mm.opensdk.** { *; }
+
+-dontwarn com.tencent.bugly.**
+-keep public class com.tencent.bugly.**{*;}
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 7cea66a7..cbd0e27b 100755
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -134,6 +134,7 @@
+
@@ -193,6 +194,9 @@
+
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 022a6c01..9952b79e 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -80,8 +80,8 @@ PODS:
- Flutter (1.0.0)
- flutter_blue_plus (0.0.1):
- Flutter
- - flutter_bugly_plugin (0.0.1):
- - Bugly
+ - flutter_bugly (0.0.1):
+ - Bugly (= 2.6.1)
- Flutter
- flutter_local_notifications (0.0.1):
- Flutter
@@ -173,7 +173,7 @@ DEPENDENCIES:
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- Flutter (from `Flutter`)
- flutter_blue_plus (from `.symlinks/plugins/flutter_blue_plus/ios`)
- - flutter_bugly_plugin (from `.symlinks/plugins/flutter_bugly_plugin/ios`)
+ - flutter_bugly (from `.symlinks/plugins/flutter_bugly/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_native_contact_picker (from `.symlinks/plugins/flutter_native_contact_picker/ios`)
- flutter_pcm_sound (from `.symlinks/plugins/flutter_pcm_sound/ios`)
@@ -252,8 +252,8 @@ EXTERNAL SOURCES:
:path: Flutter
flutter_blue_plus:
:path: ".symlinks/plugins/flutter_blue_plus/ios"
- flutter_bugly_plugin:
- :path: ".symlinks/plugins/flutter_bugly_plugin/ios"
+ flutter_bugly:
+ :path: ".symlinks/plugins/flutter_bugly/ios"
flutter_local_notifications:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_native_contact_picker:
@@ -326,7 +326,7 @@ SPEC CHECKSUMS:
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_blue_plus: 4837da7d00cf5d441fdd6635b3a57f936778ea96
- flutter_bugly_plugin: d2db6d6641938269fa538575126e8ff530ee02c7
+ flutter_bugly: bf35df32a9c5d50b8aacdd35bd8ddc5b55150dae
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
flutter_native_contact_picker: bd430ba0fbf82768bb50c2c52a69a65759a8f907
flutter_pcm_sound: de0572ca4f99091cc2abfcc31601b8a4ddd33c0e
diff --git a/lib/blue/blue_manage.dart b/lib/blue/blue_manage.dart
index dab6c673..9556c1b1 100755
--- a/lib/blue/blue_manage.dart
+++ b/lib/blue/blue_manage.dart
@@ -2,10 +2,10 @@ import 'dart:async';
import 'dart:io';
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
-import 'package:flutter_bugly_plugin/flutter_bugly_plugin.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:get/get.dart';
import 'package:star_lock/app_settings/app_settings.dart';
+import 'package:star_lock/tools/bugly/bugly_tool.dart';
import 'package:star_lock/tools/commonDataManage.dart';
import 'io_tool/io_model.dart';
@@ -100,7 +100,7 @@ class BlueManage {
void _initAdapterStateStateSubscription() {
_adapterStateStateSubscription ??=
FlutterBluePlus.adapterState.listen((BluetoothAdapterState state) {
- AppLog.log('蓝牙状态:$state');
+ AppLog.log('蓝牙状态:$state');
_adapterState = state;
});
}
@@ -228,7 +228,8 @@ class BlueManage {
if (_adapterState == BluetoothAdapterState.on) {
try {
FlutterBluePlus.startScan(timeout: Duration(seconds: timeout));
- final StreamSubscription> subscription = FlutterBluePlus.scanResults.listen((List results) {
+ final StreamSubscription> subscription =
+ FlutterBluePlus.scanResults.listen((List results) {
scanDevices.clear();
for (final ScanResult scanResult in results) {
// AppLog.log('扫描到的设备:${scanResult.device.platformName} ${scanResult.advertisementData.advName} ${scanResult.rssi}');
@@ -305,7 +306,10 @@ class BlueManage {
}
}
} else {
- FlutterBuglyPlugin.reportException(exceptionName: 'blueSendData isAvailable状态', reason: 'blueSendData isAvailable不可用');
+ BuglyTool.uploadException(
+ message: 'blueSendData isAvailable状态',
+ detail: 'blueSendData isAvailable不可用--json');
+ // FlutterBuglyPlugin.reportException(exceptionName: 'blueSendData isAvailable状态', reason: 'blueSendData isAvailable不可用');
AppLog.log('开始扫描 蓝牙不可用,不能进行蓝牙操作');
}
});
@@ -358,13 +362,12 @@ class BlueManage {
}
Future _connectDevice(
- List devicesList,
- String deviceName,
- ConnectStateCallBack connectStateCallBack,
- {
- bool isAddEquipment = false,// 是否是添加设备之前
- bool isReconnect = true,// 是否是重连
- }) async {
+ List devicesList,
+ String deviceName,
+ ConnectStateCallBack connectStateCallBack, {
+ bool isAddEquipment = false, // 是否是添加设备之前
+ bool isReconnect = true, // 是否是重连
+ }) async {
// 判断数组列表里面是否有这个设备
// AppLog.log("devicesList:$devicesList");
final int knownDeviceIndex = devicesList.indexWhere((ScanResult d) =>
@@ -392,15 +395,17 @@ class BlueManage {
AppLog.log('调用了停止扫描的方法');
await stopScan();
- if ((scanResult.advertisementData.serviceUuids[0].toString()[31] == '0') && isAddEquipment == false) {
+ if ((scanResult.advertisementData.serviceUuids[0].toString()[31] == '0') &&
+ isAddEquipment == false) {
// 添加这个判断是因为有些苹果设备或者安卓等性能比较好的设备时,添加完锁之后,锁板未改变为已添加状态之前,就进行了蓝牙连接,导致添加完锁就失败,这里进行了判断,如果第一次连接失败,就清除缓存重新扫描连接
- if(isReconnect == true){
+ if (isReconnect == true) {
AppLog.log('该锁已被重置, 重新发送扫描命令');
scanDevices.clear();
startScanSingle(deviceName, 15, (List scanDevices) {
- _connectDevice(scanDevices, deviceName, connectStateCallBack, isAddEquipment: isAddEquipment, isReconnect: false);
+ _connectDevice(scanDevices, deviceName, connectStateCallBack,
+ isAddEquipment: isAddEquipment, isReconnect: false);
});
- }else{
+ } else {
connectStateCallBack(BluetoothConnectionState.disconnected);
EasyLoading.showToast('该锁已被重置'.tr, duration: 2000.milliseconds);
scanDevices.clear();
@@ -459,8 +464,10 @@ class BlueManage {
//循环判断服务
for (final BluetoothService service in services) {
if (service.uuid == _serviceIdConnect) {
- for (final BluetoothCharacteristic characteristic in service.characteristics) {
- if (characteristic.characteristicUuid == _characteristicIdSubscription) {
+ for (final BluetoothCharacteristic characteristic
+ in service.characteristics) {
+ if (characteristic.characteristicUuid ==
+ _characteristicIdSubscription) {
_subScribeToCharacteristic(characteristic);
bluetoothConnectionState = BluetoothConnectionState.connected;
connectStateCallBack(bluetoothConnectionState!);
diff --git a/lib/main.dart b/lib/main.dart
index 4db2742f..a72682a4 100755
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -4,6 +4,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
+import 'package:flutter_bugly/flutter_bugly.dart';
import 'package:get/get.dart';
import 'package:path/path.dart' as path;
import 'package:star_lock/flavors.dart';
@@ -23,30 +24,31 @@ import 'tools/store_service.dart';
// 该文件不可作为编译入口,请查看 flavorizr.yaml 中的说明
FutureOr main() async {
- WidgetsFlutterBinding.ensureInitialized();
+ FlutterBugly.postCatchedException(() async {
+ WidgetsFlutterBinding.ensureInitialized();
- await _setCommonServices();
+ await _setCommonServices();
- // 设置国际化信息
- await _initTranslation();
+ // 设置国际化信息
+ await _initTranslation();
- final bool isLogin = await getLoginStatus();
- if (isLogin) {
- await privacySDKInitialization();
- }
-
- WidgetsBinding.instance.addPostFrameCallback((_) async {
- final bool? openDeBug = await Storage.getBool(isOpenDeBug);
- if (openDeBug == true) {
- DeBug.showFloatWidget();
+ final bool isLogin = await getLoginStatus();
+ if (isLogin) {
+ await privacySDKInitialization();
}
- });
- runApp(MyApp(isLogin: isLogin));
+ WidgetsBinding.instance.addPostFrameCallback((_) async {
+ final bool? openDeBug = await Storage.getBool(isOpenDeBug);
+ if (openDeBug == true) {
+ DeBug.showFloatWidget();
+ }
+ });
+ runApp(MyApp(isLogin: isLogin));
+ });
if (AppPlatform.isAndroid) {
const SystemUiOverlayStyle systemUiOverlayStyle =
- SystemUiOverlayStyle(statusBarColor: Colors.transparent);
+ SystemUiOverlayStyle(statusBarColor: Colors.transparent);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
}
@@ -82,7 +84,7 @@ Future privacySDKInitialization() async {
await jpushProvider.initJPushService();
}
-void checkChinese(){
+void checkChinese() {
// 获取当前脚本的目录
final String scriptDir = path.dirname(Platform.script.path);
@@ -104,4 +106,4 @@ void findChineseCharacters(Directory directory) {
bool hasChineseCharacters(String input) {
return RegExp(r'[\u4e00-\u9fa5]').hasMatch(input);
-}
\ No newline at end of file
+}
diff --git a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart
index 60b21a39..6acf77b8 100755
--- a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart
+++ b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart
@@ -2,7 +2,6 @@ import 'dart:async';
import 'package:flutter/scheduler.dart';
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
-import 'package:flutter_bugly_plugin/flutter_bugly_plugin.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:get/get.dart';
import 'package:intl/intl.dart';
@@ -11,8 +10,8 @@ import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity/ElectronicKeyListEntity.dart';
import 'package:star_lock/main/lockDetail/lockSet/lockTime/getServerDatetime_entity.dart';
import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart';
+import 'package:star_lock/tools/bugly/bugly_tool.dart';
import 'package:star_lock/tools/throttler.dart';
-
import 'package:star_lock/widget/permission/permission_dialog.dart';
import '../../../app_settings/app_settings.dart';
@@ -334,7 +333,8 @@ class LockDetailLogic extends BaseGetXController {
showBlueConnetctToastTimer(
outTimer: 20,
action: () {
- FlutterBuglyPlugin.reportException(exceptionName: '开门超时处理', reason: '开门超时,断开连接');
+ // FlutterBuglyPlugin.reportException(exceptionName: '开门超时处理', reason: '开门超时,断开连接');
+ BuglyTool.uploadException(message: '开门超时处理', detail: '开门超时,断开连接--json');
resetOpenDoorState();
blueManageDisconnect();
});
@@ -351,7 +351,8 @@ class LockDetailLogic extends BaseGetXController {
.blueSendData(state.keyInfos.value.bluetooth!.bluetoothDeviceName!,
(BluetoothConnectionState deviceConnectionState) async {
if (deviceConnectionState == BluetoothConnectionState.connected) {
- FlutterBuglyPlugin.reportException(exceptionName: '蓝牙连接成功', reason: '蓝牙连接成功,发送开锁指令');
+ BuglyTool.uploadException(message: '蓝牙连接成功', detail: '蓝牙连接成功,发送开锁指令--json',data: {'key1':'value1','key2':'value2'});
+ // FlutterBuglyPlugin.reportException(exceptionName: '蓝牙连接成功', reason: '蓝牙连接成功,发送开锁指令');
IoSenderManage.senderOpenLock(
lockID: BlueManage().connectDeviceName,
userID: await Storage.getUid(),
diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart
index 5dd20052..f0b22083 100755
--- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart
+++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart
@@ -1,7 +1,6 @@
import 'dart:async';
import 'package:flutter/material.dart';
-import 'package:flutter_bugly_plugin/flutter_bugly_plugin.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@@ -11,6 +10,7 @@ import 'package:star_lock/flavors.dart';
import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_state.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import 'package:star_lock/tools/aliyunRealNameAuth/aliyunRealNameAuthHandle.dart';
+import 'package:star_lock/tools/bugly/bugly_tool.dart';
import 'package:star_lock/tools/showCupertinoAlertView.dart';
import 'package:star_lock/tools/showTipView.dart';
import 'package:star_lock/widget/flavors_img.dart';
@@ -90,10 +90,17 @@ class _LockDetailPageState extends State
//鑫泓佳布局
Widget xhjWidget() {
- final bool isShowTip =
- (state.keyInfos.value.keyType == XSConstantMacro.keyTypeTime || state.keyInfos.value.keyType == XSConstantMacro.keyTypeLoop)
- && (DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) <= 15 && DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) >= 0)
- && (state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusNormalUse || state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusWaitReceive);
+ final bool isShowTip = (state.keyInfos.value.keyType ==
+ XSConstantMacro.keyTypeTime ||
+ state.keyInfos.value.keyType == XSConstantMacro.keyTypeLoop) &&
+ (DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) <=
+ 15 &&
+ DateTool()
+ .compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) >=
+ 0) &&
+ (state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusNormalUse ||
+ state.keyInfos.value.keyStatus ==
+ XSConstantMacro.keyStatusWaitReceive);
return Scaffold(
backgroundColor: Colors.white,
body: Obx(() {
@@ -1428,13 +1435,21 @@ class _LockDetailPageState extends State
if (isOpenLockNeedOnline) {
// 不需要联网
state.openDoorModel = 0;
- FlutterBuglyPlugin.reportException(exceptionName: '点击了不需要联网开锁');
+ // FlutterBuglyPlugin.reportException(exceptionName: '点击了不需要联网开锁');
+ BuglyTool.uploadException(
+ message: '点击了不需要联网开锁',
+ detail: '点击了不需要联网开锁--------json',
+ data: {'key1': 'value1', 'key2': 'value2'});
AppLog.log('点击开锁 state.openDoorModel = 0 不需要联网');
logic.openDoorAction();
} else {
// 需要联网
state.openDoorModel = 2;
- FlutterBuglyPlugin.reportException(exceptionName: '点击了需要联网开锁');
+ // FlutterBuglyPlugin.reportException(exceptionName: '点击了需要联网开锁');
+ BuglyTool.uploadException(
+ message: '点击了需要联网开锁',
+ detail: '点击了需要联网开锁---json',
+ data: {'key1': 'value1', 'key2': 'value2'});
AppLog.log('点击开锁 state.openDoorModel = 2 需要联网');
logic.getLockNetToken();
}
diff --git a/lib/tools/bugly/bugly_tool.dart b/lib/tools/bugly/bugly_tool.dart
index f7768a13..002271dd 100644
--- a/lib/tools/bugly/bugly_tool.dart
+++ b/lib/tools/bugly/bugly_tool.dart
@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
-import 'package:flutter_bugly_plugin/flutter_bugly_plugin.dart';
+import 'package:flutter_bugly/flutter_bugly.dart';
import 'package:star_lock/app_settings/app_settings.dart';
import 'package:star_lock/flavors.dart';
import 'package:star_lock/login/login/entity/LoginData.dart';
@@ -16,15 +16,15 @@ class BuglyTool {
static Future init() async {
if (F.isProductionEnv) {
//生产
- await FlutterBuglyPlugin.init(
- appIdAndroid: '5729fb97dc',
- appIdiOS: '33c4430cce',
+ await FlutterBugly.init(
+ androidAppId: '5729fb97dc',
+ iOSAppId: '33c4430cce',
);
} else {
//测试
- await FlutterBuglyPlugin.init(
- appIdAndroid: '5729fb97dc',
- appIdiOS: '33c4430cce',
+ await FlutterBugly.init(
+ androidAppId: '5729fb97dc',
+ iOSAppId: '33c4430cce',
);
}
@@ -33,28 +33,35 @@ class BuglyTool {
setUserId(loginData?.userid);
//错误日志监控
- FlutterError.onError = (FlutterErrorDetails details) async {
- AppLog.log('error:${details.exception.toString()}',
- stackTrace: details.stack, error: true);
- FlutterBuglyPlugin.reportException(
- exceptionName: details.exception.toString(),
- reason: details.stack.toString());
- Zone.current.handleUncaughtError(
- details.exception, details.stack ?? StackTrace.empty);
- };
+ // FlutterError.onError = (FlutterErrorDetails details) async {
+ // AppLog.log('error:${details.exception.toString()}',
+ // stackTrace: details.stack, error: true);
+ // FlutterBugly.uploadException(
+ // message: details.exception.toString(),
+ // detail: details.stack.toString());
+ // Zone.current.handleUncaughtError(
+ // details.exception, details.stack ?? StackTrace.empty);
+ // };
//错误日志监控
PlatformDispatcher.instance.onError = (Object error, StackTrace stack) {
AppLog.log('error:$error', stackTrace: stack, error: true);
- FlutterBuglyPlugin.reportException(
- exceptionName: error.toString(), reason: stack.toString());
+ FlutterBugly.uploadException(
+ message: error.toString(), detail: stack.toString());
return true;
};
}
//关联 userid
static void setUserId(int? userId) {
- FlutterBuglyPlugin.setUserIdentifier(
- userIdentifier: (userId ?? 0).toString());
+ FlutterBugly.setUserId(userId?.toString() ?? '');
+ }
+
+ static void uploadException({
+ required String message,
+ required String detail,
+ Map? data,
+ }) {
+ FlutterBugly.uploadException(message: message, detail: detail, data: data);
}
}
diff --git a/pubspec.yaml b/pubspec.yaml
index ec8c0708..52c4a7cb 100755
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -234,7 +234,8 @@ dependencies:
colorfilter_generator: ^0.0.8
file_picker: ^5.3.1
# 错误日志监控
- flutter_bugly_plugin: ^0.0.9
+# flutter_bugly_plugin: ^0.0.9
+ flutter_bugly: ^1.0.2
open_filex: ^4.4.0