Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách lấy tên thương hiệu (brand) thiết bị Android bằng lập trình

Giới thiệu

Hướng dẫn này trình bày cách lấy tên thương hiệu (brand) của thiết bị Android thông qua lập trình. Brand đại diện cho nhà sản xuất/thương hiệu hướng tới người dùng cuối.

Các bước thực hiện

Bước 1: Tạo dự án mới

Tạo dự án Android Studio mới qua File → New Project.

Bước 2: Layout activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/text"
        android:textSize="30sp"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

Bước 3: MainActivity.java

package com.example.myapplication;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.text);

        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) 
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, 
                new String[]{Manifest.permission.READ_PHONE_STATE}, 101);
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == 101) {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) 
                        == PackageManager.PERMISSION_GRANTED) {
                    textView.setText(Build.BRAND);
                }
            }
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) 
                == PackageManager.PERMISSION_GRANTED) {
            textView.setText(Build.BRAND);
        }
    }
}

Bước 4: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Kết quả mong đợi

Chạy app trên thiết bị thật. Kết quả ví dụ: google (Pixel), samsung (Galaxy), xiaomi (Mi/Redmi), oneplus, oppo, vivo, motorola, nokia, sony, asus.

Phân biệt BRAND vs MANUFACTURER

  • Build.BRAND: Thương hiệu hướng tới người tiêu dùng (ví dụ: "samsung", "google").
  • Build.MANUFACTURER: Nhà sản xuất phần cứng thực tế (ví dụ: "samsung", "LGE" cho LG, "Xiaomi").

Trong hầu hết trường hợp, BRAND và MANUFACTURER giống nhau, nhưng có ngoại lệ (ví dụ: thiết bị Google Pixel có BRAND="google" nhưng MANUFACTURER có thể là "HTC" hoặc "LG" cho các thế hệ cũ).