[flutter] 디바이스의 브랜드 정보를 알아내는 방법 with device_info

플러터(Flutter) 앱을 개발할 때, 디바이스의 브랜드 정보를 알아내는 것은 가끔 필요한 경우가 있을 수 있습니다. 이를 위해 device_info 패키지를 사용하여 디바이스의 브랜드 정보를 얻을 수 있습니다.

device_info 패키지 추가

먼저, device_info 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일의 dependencies 섹션에 아래와 같이 device_info 패키지를 추가합니다:

dependencies:
  flutter:
    sdk: flutter

  device_info: ^2.0.0

그리고 flutter pub get 명령어를 실행하여 패키지를 다운로드합니다.

브랜드 정보 가져오기

device_info 패키지를 사용하여 디바이스의 브랜드 정보를 가져오는 방법은 다음과 같습니다:

import 'package:device_info/device_info.dart';

String getDeviceBrand() {
  String brand = '';
  
  DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
  if (defaultTargetPlatform == TargetPlatform.android) {
    AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
    brand = androidInfo.brand;
  } else if (defaultTargetPlatform == TargetPlatform.iOS) {
    IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
    brand = iosInfo.brand;
  }
  
  return brand;
}

이제 getDeviceBrand() 함수를 호출하면 사용 중인 디바이스의 브랜드 정보를 얻을 수 있습니다. 이 함수는 androidiOS 플랫폼에 모두 호환됩니다.

예제 사용

브랜드 정보를 얻기 위해 getDeviceBrand() 함수를 사용하는 예제를 보겠습니다:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Device Brand Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Device Brand Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                'Device Brand:',
              ),
              FutureBuilder<String>(
                future: getDeviceBrand(),
                builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
                  if (snapshot.connectionState == ConnectionState.done) {
                    return Text(
                      snapshot.data,
                      style: TextStyle(
                        fontWeight: FontWeight.bold,
                        fontSize: 24,
                      ),
                    );
                  } else {
                    return CircularProgressIndicator();
                  }
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

이 예제는 앱의 첫 화면에 “Device Brand”라는 텍스트를 표시하고, getDeviceBrand() 함수를 사용하여 디바이스의 브랜드 정보를 로딩한 후에 해당 정보를 출력합니다.

앱을 실행하면 디바이스의 브랜드 정보가 표시될 것입니다.