Androidデバイス名を取得するには? 私はHTCの欲望を使用しています。HTC Sync 経由で接続すると、ソフトウェアに「HTC Smith」という名前が表示されます。この名前をコードで取得したいと思います。
Androidでこれはどのように可能ですか?
Androidデバイス名を取得するには? 私はHTCの欲望を使用しています。HTC Sync 経由で接続すると、ソフトウェアに「HTC Smith」という名前が表示されます。この名前をコードで取得したいと思います。
Androidでこれはどのように可能ですか?
ここで答えを見ることができますプログラムで 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);
}
}
多くの一般的なデバイスでは、デバイスの市場名は利用できません。たとえば、Samsung Galaxy S6 では、 の値はBuild.MODEL
、"SM-G920F"
、"SM-G920I"
またはになり"SM-G920W8"
ます。
デバイスの市場 (消費者にわかりやすい) 名を取得する小さなライブラリを作成しました。10,000 を超えるデバイスの正しい名前を取得し、常に更新されます。私のライブラリを使用したい場合は、以下のリンクをクリックしてください。
上記のライブラリを使用したくない場合は、消費者にわかりやすいデバイス名を取得するための最良の解決策は次のとおりです。
/** 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)
それを試してみてください。Bluetooth 経由でデバイス名を取得できます。
それがあなたを助けることを願っています
public String getPhoneName() {
BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
String deviceName = myDevice.getName();
return deviceName;
}
以下を使用できます。
アンドロイドドキュメントから:
String MANUFACTURER
製品/ハードウェアの製造元。
String MODEL
最終製品のエンド ユーザーに表示される名前。
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を介して)デバイス名を取得できる他の方法もあります。
以下は私にとってはうまくいきます。
String deviceName = Settings.Global.getString(.getContentResolver(), Settings.Global.DEVICE_NAME);
私はその重複した答えだとは思わない。上記のpplは、セキュアな設定について話しています。私にとって、セキュアな設定はnullを与えています。グローバルな設定を使用すると機能します。とにかく、ありがとう。
@hbhakhraの答えで十分です。
詳細な説明に興味がある場合は、Android 互換性定義ドキュメントを参照すると便利です。(3.2.2 ビルドパラメータ)
見つけるだろう:
DEVICE - ハードウェア機能の構成とデバイスの工業デザインを識別する開発名またはコード名を含む、デバイス実装者によって選択された値。このフィールドの値は、7 ビット ASCII としてエンコード可能で、正規表現「^[a-zA-Z0-9_-]+$」に一致する必要があります。
MODEL - エンド ユーザーに知られているデバイスの名前を含む、デバイス実装者によって選択された値。これは、デバイスが販売され、エンド ユーザーに販売されるのと同じ名前にする必要があります。null または空の文字列 ("") であってはならないことを除いて、このフィールドの特定の形式に関する要件はありません。
MANUFACTURER - 製品の OEM (Original Equipment Manufacturer) の商号。null または空の文字列 ("") であってはならないことを除いて、このフィールドの特定の形式に関する要件はありません。
このコードを試してください。Android デバイス名を取得します。
public static String getDeviceName() {
String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
if (model.startsWith(manufacturer)) {
return model;
}
return manufacturer + " " + model;
}
初め、
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
λ