天天看點

Flutter實戰-擷取裝置資訊一. 前言二. 配置三. 代碼步驟四. 總結

Flutter實戰-擷取裝置資訊

  • 一. 前言
  • 二. 配置
    • 1.添加依賴
    • 2.配置IOS
  • 三. 代碼步驟
    • 1.擷取平台資訊
    • 2.擷取裝置資訊
  • 四. 總結

一. 前言

Flutter實戰—擷取裝置資訊。

二. 配置

1.添加依賴

device_info:Get current device information from within the Flutter application.

版本查詢 : https://pub.dev/packages/device_info

1.1 在項目的

pubspec.yaml

檔案中添加依賴:device_info

environment:
 	sdk: ">=2.1.0 <3.0.0"
  
dependencies:
	flutter:
	    sdk: flutter
	//添加依賴
  	device_info: 0.4.0+2
           

1.2 安裝下載下傳依賴包

flutter packages get
           

2.配置IOS

如果需要在IOS運作,需要安裝cocoapods和brew:

brew install cocoapods
pod setup
           

三. 代碼步驟

1.擷取平台資訊

Flutter是全平台架構,可以在多種平台上運作,擷取裝置資訊之前要先判斷程式運作在哪種平台。

判斷平台:通過

dart.io

包下的Platform

Platform

類來擷取。

1.1 Platform類

class Platform {
...
  static final bool isLinux = (_operatingSystem == "linux");
  static final bool isMacOS = (_operatingSystem == "macos");
  static final bool isWindows = (_operatingSystem == "windows");
  static final bool isAndroid = (_operatingSystem == "android");
  static final bool isIOS = (_operatingSystem == "ios");
  static final bool isFuchsia = (_operatingSystem == "fuchsia");
...
}
           

1.2 示例

(1)導入

dart.io

(2)示例—判斷平台(IOS/Android)

if(Platform.isIOS){
  print('This is IOS.');
}else if(Platform.isAndroid)
  print('This is Android.');
}
           

2.擷取裝置資訊

2.1導入

device_info

2.2 擷取裝置資訊(IOS/Android)

void getDeviceInfo() async{
    DeviceInfoPlugin deviceInfo = new DeviceInfoPlugin();
    if(Platform.isIOS){
      IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo;
    }else if(Platform.isAndroid){
      AndroidDeviceInfo androidDeviceInfo = await deviceInfo.androidInfo;
    }
  }
           

2.3 IosDeviceInfo類

(1) 擷取具體屬性值:iosDeviceInfo.屬性名(

String name = iosDeviceInfo.name

)

class IosDeviceInfo {
...
  final String name;
  final String systemName;
  final String systemVersion;
  final String model;
  final String localizedModel;
  final String identifierForVendor;
  final bool isPhysicalDevice;
  final IosUtsname utsname;
...
}
           

2.4 AndroidDeviceInfo類

(1) 擷取具體屬性值:androidDeviceInfo.屬性名(

String brand = androidDeviceInfo.brand

)

class AndroidDeviceInfo {
...
  final AndroidBuildVersion version;
  final String board;
  final String bootloader;
  final String brand;
  final String device;
  final String display;
  final String fingerprint;
  final String hardware;
  final String host;
  final String id;
  final String manufacturer;
  final String model;
  final String product;
  final List<String> supported32BitAbis;
  final List<String> supported64BitAbis;
  final List<String> supportedAbis;
  final String tags;
  final String type;
  final bool isPhysicalDevice;
  final String androidId;
...
}
           

(2) AndroidBuildVersion類:

androidDeviceInfo.version

class AndroidBuildVersion {
...
  final String baseOS;
  final String codename;
  final String incremental;
  final int previewSdkInt;
  final String release;
  final int sdkInt;
  final String securityPatch;
...
}
           

四. 總結

釋出此文,目的隻是為學習到的知識點進行記錄,如有錯誤請多多指點。