有没有办法获取 Android 和 iOS 的设备 ID?因为当我使用 device_info 插件在 Android 上尝试时,出现了以下错误:
MissingPluginException(No implementation found for method getAndroidDeviceInfo on channel plugins.flutter.io/device_info)
有没有办法获取 Android 和 iOS 的设备 ID?因为当我使用 device_info 插件在 Android 上尝试时,出现了以下错误:
MissingPluginException(No implementation found for method getAndroidDeviceInfo on channel plugins.flutter.io/device_info)
事实证明,你实际上并不需要一个包来获取设备信息,所有功能都在名为flutter.io的Flutter类中。
你只需使用以下代码作为导入即可轻松调用:
import 'dart:io' show Platform;
然后,要执行特定于平台的代码,您可以使用:
if (Platform.iOS)
{//your code}
else if (Platform.Android)
{//your other code}
在 pubspec.yaml 中添加版本号,如下所示,并单击获取依赖项。
device_id: ^0.2.0
添加导入语句
import 'package:device_id/device_id.dart';
并调用
String device_id = await DeviceId.getID;
dependencies:
flutter:
sdk: flutter
device_info: ^0.4.0+1
import 'package:device_info/device_info.dart';
第三步,创建一个异步函数来返回设备id。
deviceInfo() async{
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
return androidInfo.id;
}
第四步 创建一个FutureBuilder()来显示设备ID或执行任何操作。
FutureBuilder(
future: deviceInfo(),
builder: (BuildContext context, AsyncSnapshot snap){
// do nothing...
if (snap.hasData){
//your logic goes here.
}else {
return new CircularProgressIndicator();
}
},
)
我希望这能对你有所帮助。