deviceId method

  1. @override
Future<String> deviceId()
override

设备标识:第一次使用时生成并持久保存(《2.功能概述文档》第 4 节)。

Implementation

@override
Future<String> deviceId() async {
  final file = File(p.join(dataDir, 'deeprespond_im', 'device', 'device_id'));
  if (file.existsSync()) {
    final existing = (await file.readAsString()).trim();
    if (RegExp(r'^[\x21-\x7e]{1,64}$').hasMatch(existing)) return existing;
  }
  final id = 'dart_${randomHex(random.bytes(16))}';
  await file.parent.create(recursive: true);
  await file.writeAsString(id);
  return id;
}