Initial commit: 91dj android client dev_1.0.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import 'package:analytics_sdk/utils/platform_storage.dart';
|
||||
import 'package:analytics_sdk/utils/uuid_util.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
const _kDeviceIdStorageKey = 'analytics_device_id.txt';
|
||||
const _kNativeChannel = MethodChannel('analytics_sdk');
|
||||
|
||||
Future<String> generateOrLoadDeviceId() async {
|
||||
try {
|
||||
final nativeDeviceId =
|
||||
(await _kNativeChannel.invokeMethod<String>('getDeviceId'))?.trim() ??
|
||||
'';
|
||||
if (nativeDeviceId.isNotEmpty) return nativeDeviceId;
|
||||
} on MissingPluginException {
|
||||
// Desktop platforms may not implement this method; fall back to storage.
|
||||
} catch (_) {}
|
||||
|
||||
try {
|
||||
final existing =
|
||||
(await PlatformStorage.read(_kDeviceIdStorageKey))?.trim() ?? '';
|
||||
if (existing.isNotEmpty) return existing;
|
||||
|
||||
final generated = generateUuidV4();
|
||||
await PlatformStorage.write(_kDeviceIdStorageKey, generated);
|
||||
return generated;
|
||||
} catch (_) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user