197

Androidデバイス名を取得するには? 私はHTCの欲望を使用しています。HTC Sync 経由で接続すると、ソフトウェアに「HTC Smith」という名前が表示されます。この名前をコードで取得したいと思います。

Androidでこれはどのように可能ですか?

4

15 に答える 15

47

ここで答えを見ることができますプログラムで Android Phone モデルを取得します

public String getDeviceName() {
   String manufacturer = Build.MANUFACTURER;
   String model = Build.MODEL;
   if (model.startsWith(manufacturer)) {
      return capitalize(model);
   } else {
      return capitalize(manufacturer) + " " + model;
   }
}


private String capitalize(String s) {
    if (s == null || s.length() == 0) {
        return "";
    }
    char first = s.charAt(0);
    if (Character.isUpperCase(first)) {
        return s;
    } else {
        return Character.toUpperCase(first) + s.substring(1);
    }
}
于 2014-09-30T09:43:46.973 に答える
26

多くの一般的なデバイスでは、デバイスの市場名は利用できません。たとえば、Samsung Galaxy S6 では、 の値はBuild.MODEL"SM-G920F""SM-G920I"またはになり"SM-G920W8"ます。

デバイスの市場 (消費者にわかりやすい) 名を取得する小さなライブラリを作成しました。10,000 を超えるデバイスの正しい名前を取得し、常に更新されます。私のライブラリを使用したい場合は、以下のリンクをクリックしてください。

Github の AndroidDeviceNames ライブラリ


上記のライブラリを使用したくない場合は、消費者にわかりやすいデバイス名を取得するための最良の解決策は次のとおりです。

/** Returns the consumer friendly device name */
public static String getDeviceName() {
    String manufacturer = Build.MANUFACTURER;
    String model = Build.MODEL;
    if (model.startsWith(manufacturer)) {
        return capitalize(model);
    }
    return capitalize(manufacturer) + " " + model;
}

private static String capitalize(String str) {
    if (TextUtils.isEmpty(str)) {
        return str;
    }
    char[] arr = str.toCharArray();
    boolean capitalizeNext = true;
    String phrase = "";
    for (char c : arr) {
        if (capitalizeNext && Character.isLetter(c)) {
            phrase += Character.toUpperCase(c);
            capitalizeNext = false;
            continue;
        } else if (Character.isWhitespace(c)) {
            capitalizeNext = true;
        }
        phrase += c;
    }
    return phrase;
}

私の Verizon HTC One M8 の例:

// using method from above
System.out.println(getDeviceName());
// Using https://github.com/jaredrummler/AndroidDeviceNames
System.out.println(DeviceName.getDeviceName());

結果:

HTC6525LVW

HTC ワン (M8)

于 2015-12-14T11:52:28.327 に答える
24

それを試してみてください。Bluetooth 経由でデバイス名を取得できます。

それがあなたを助けることを願っています

public String getPhoneName() {  
        BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
        String deviceName = myDevice.getName();     
        return deviceName;
    }
于 2014-05-19T04:14:18.260 に答える
12

以下を使用できます。

アンドロイドドキュメントから:

MANUFACTURER:

String MANUFACTURER

製品/ハードウェアの製造元。

MODEL:

String MODEL

最終製品のエンド ユーザーに表示される名前。

DEVICE:

String DEVICE

工業デザインの名前。

例として:

String deviceName = android.os.Build.MANUFACTURER + " " + android.os.Build.MODEL;
//to add to textview
TextView textView = (TextView) findViewById(R.id.text_view);
textView.setText(deviceName);

さらに、次のように使用できるBuild クラスの多くの属性があります。

  • os.android.Build.BOARD
  • os.android.Build.BRAND
  • os.android.Build.BOOTLOADER
  • os.android.Build.DISPLAY
  • os.android.Build.CPU_ABI
  • os.android.Build.PRODUCT
  • os.android.Build.HARDWARE
  • os.android.Build.ID

Buildまた、クラスを使用せずに(Bluetoothを介して)デバイス名を取得できる他の方法もあります。

于 2017-07-19T18:34:49.543 に答える
4

以下は私にとってはうまくいきます。

String deviceName = Settings.Global.getString(.getContentResolver(), Settings.Global.DEVICE_NAME);

私はその重複した答えだとは思わない。上記のpplは、セキュアな設定について話しています。私にとって、セキュアな設定はnullを与えています。グローバルな設定を使用すると機能します。とにかく、ありがとう。

于 2018-07-20T17:15:25.330 に答える
1

@hbhakhraの答えで十分です。

詳細な説明に興味がある場合は、Android 互換性定義ドキュメントを参照すると便利です。(3.2.2 ビルドパラメータ)

見つけるだろう:

DEVICE - ハードウェア機能の構成とデバイスの工業デザインを識別する開発名またはコード名を含む、デバイス実装者によって選択された値。このフィールドの値は、7 ビット ASCII としてエンコード可能で、正規表現「^[a-zA-Z0-9_-]+$」に一致する必要があります。

MODEL - エンド ユーザーに知られているデバイスの名前を含む、デバイス実装者によって選択された値。これは、デバイスが販売され、エンド ユーザーに販売されるのと同じ名前にする必要があります。null または空の文字列 ("") であってはならないことを除いて、このフィールドの特定の形式に関する要件はありません。

MANUFACTURER - 製品の OEM (Original Equipment Manufacturer) の商号。null または空の文字列 ("") であってはならないことを除いて、このフィールドの特定の形式に関する要件はありません。

于 2016-02-02T02:46:42.690 に答える
1

このコードを試してください。Android デバイス名を取得します。

public static String getDeviceName() {
    String manufacturer = Build.MANUFACTURER;
    String model = Build.MODEL;
    if (model.startsWith(manufacturer)) {
        return model;
    }
    return manufacturer + " " + model;
}
于 2018-07-28T12:03:10.850 に答える
0

初め、

adb shell getprop >prop_list.txt

2番、

prop_list.txt でデバイス名を見つけて prop 名を取得します。たとえば、私のデバイス名は ro.oppo.market.name です。

ついに、

adb shell getprop ro.oppo.market.name

D:\winusr\adbl

λ adb shell getprop ro.oppo.market.name

OPPO R17

D:\winusr\adbl

λ

于 2021-12-07T12:12:50.673 に答える