Android 장치 이름 가져오기
Android 기기 이름을 얻는 방법저는 HTC 욕망을 사용하고 있습니다.HTC Sync를 통해 연결하면 소프트웨어에 Name이 표시됩니다.HTC Smith. 코드를 통해 이 이름을 가져오고 싶습니다.
안드로이드에서는 어떻게 이것이 가능합니까?
Android 기기 이름을 얻으려면 코드 한 줄만 추가하면 됩니다.
android.os.Build.MODEL;
검색 결과: get-android-device-name
여기에서 답을 볼 수 있습니다. 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);
}
}
이 문제는 블루투스 이름을 얻어서 해결했는데BluetoothAdapter
(블루투스 ★★★★★★★★★★★★★★★★★★★★★★★★★」
코드는 다음과 같습니다.
Settings.Secure.getString(getContentResolver(), "bluetooth_name");
추가 권한은 필요하지 않습니다.
많은 일반적인 디바이스에서는 디바이스의 시장명을 사용할 수 없습니다.들어 Galaxy Galaxy S6의 입니다.Build.MODEL
"" " " " " " " " " " 가 될 수 ."SM-G920F"
,"SM-G920I"
, 「」"SM-G920W8"
.
디바이스의 시장명(소비자 친화적)을 얻을 수 있는 작은 라이브러리를 만들었습니다.10,000대 이상의 디바이스에 대해 올바른 이름을 얻고 지속적으로 업데이트됩니다.라이브러리를 사용하려면 아래 링크를 클릭하십시오.
Github의 Android DeviceNames 라이브러리
위의 라이브러리를 사용하지 않는 경우 다음 방법으로 사용자에게 편리한 디바이스 이름을 얻을 수 있습니다.
/** 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)
해보세요. 블루투스를 통해 장치 이름을 얻을 수 있습니다.
도움이 되었으면 좋겠다
public String getPhoneName() {
BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
String deviceName = myDevice.getName();
return deviceName;
}
다음을 사용할 수 있습니다.
Android 문서:
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);
또한 빌드 클래스에서는 다음과 같은 많은 속성을 사용할 수 있습니다.
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
(어느 쪽인가 하면)
난 팔로잉이 좋아.
문자열 deviceName = 설정입니다.Global.getString(.getContentResolver()), 설정.Global.DEVICE_NAME);
나는 그것이 중복된 대답이라고 생각하지 않는다.위의 ppl은 시큐어 설정에 대해 설명하고 있습니다.저에게는 시큐어 설정은 늘을 주고 있습니다.글로벌 설정을 사용하면 동작합니다.어쨌든 고마워요.
사용자 정의 DeviceName을 거의 모든 디바이스에서 사용할 수 있고 사용 권한이 필요하지 않은 범용적인 방법
String userDeviceName = Settings.Global.getString(getContentResolver(), Settings.Global.DEVICE_NAME);
if(userDeviceName == null)
userDeviceName = Settings.Secure.getString(getContentResolver(), "bluetooth_name");
@hbhakhra의 답변으로 충분합니다.
자세한 설명은 Android Compatibility Definition Document(3.2.2 빌드 파라미터)를 참조해 주십시오.
다음과 같은 정보를 얻을 수 있습니다.
DEVICE - 디바이스의 하드웨어 기능 및 산업 설계를 식별하는 개발명 또는 코드명을 포함하는 디바이스 실장자가 선택한 값.이 필드의 값은 7비트 ASCII로 인코딩 가능하며 정규 표현 "^[a-zA-Z0-9_-]+$"와 일치해야 합니다.
MODEL - 최종 사용자가 알고 있는 디바이스 이름을 포함하는 디바이스 실장자가 선택한 값.이 이름은 기기가 최종 사용자에게 판매되고 판매되는 이름과 동일해야 합니다.이 필드의 특정 형식에 대한 요건은 없습니다.단, 늘 또는 빈 문자열("")은 사용할 수 없습니다.
제조업체 - 제품의 OEM(Original Equipment Manufacturer)의 상호.이 필드의 특정 형식에 대한 요건은 없습니다.단, 늘 또는 빈 문자열("")은 사용할 수 없습니다.
간단하게 사용
BluetoothAdapter.getDefaultAdapter().getName()
이 코드를 사용해 보세요.Android 디바이스명이 표시됩니다.
public static String getDeviceName() {
String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
if (model.startsWith(manufacturer)) {
return model;
}
return manufacturer + " " + model;
}
업데이트 빌드프롭에서 장치를 쉽게 검색할 수 있습니다.
static String GetDeviceName() {
Process p;
String propvalue = "";
try {
p = new ProcessBuilder("/system/bin/getprop", "ro.semc.product.name").redirectErrorStream(true).start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
propvalue = line;
}
p.destroy();
} catch (IOException e) {
e.printStackTrace();
}
return propvalue;
}
그러나 일부 장치에서는 작동하지 않습니다.
static String getDeviceName() {
try {
Class systemPropertiesClass = Class.forName("android.os.SystemProperties");
Method getMethod = systemPropertiesClass.getMethod("get", String.class);
Object object = new Object();
Object obj = getMethod.invoke(object, "ro.product.device");
return (obj == null ? "" : (String) obj);
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
이렇게 하면 '아이돌3'를 얻을 수 있어요.
예를 들어 비루트 디바이스의 Termux UNIX 쉘을 통해 Android의 GNU/Linux 환경 내에서는/system/bin/getprop
각 값의 의미는 Android 내(구글소스에서도)에 설명되어 있습니다.
% /system/bin/getprop | fgrep ro.product | tail -3
[ro.product.manufacturer]: [Google]
[ro.product.model]: [Pixel 2 XL]
[ro.product.name]: [taimen]
% /system/bin/getprop ro.product.model
Pixel 2 XL
% /system/bin/getprop ro.product.model | tr ' ' _
Pixel_2_XL
예를 들어 다음과 같이 내부용으로 설정할 수 있습니다.
tmux select-pane -T "$(getprop ro.product.model)"
첫번째,
adb shell getprop > prop_list.txt
둘째,
prop_list에서 디바이스 이름을 찾습니다.txt를 사용하여 프로펠러 이름을 가져옵니다(예: 내 디바이스 이름은 ro.oppo.market.name).
마침내.
adb shell getprop ro.oppo.market.name
D:\winusr\adbl
§ adb shell getprop ro.oppo.market.name
오포 R17
D:\winusr\adbl
λ
이 도서관들을 시도해 봤지만 내 예상대로 작동하지 않았고 완전히 잘못된 이름을 붙이고 있었다.
그래서 제가 같은 자료를 사용해서 이 도서관을 직접 만들었습니다.여기 링크가 있습니다.
이 라이브러리를 사용하려면 이 라이브러리를 구현에 추가하십시오.
implementation 'com.github.aishik212:AndroidPhoneNamesFinder:v1.0.2'
그런 다음 다음 코틀린 코드를 사용합니다.
DeviceNameFinder.getPhoneValues(this, object : DeviceDetailsListener
{
override fun details(doQuery: DeviceDetailsModel?)
{
super.details(doQuery)
Log.d(TAG, "details: "+doQuery?.calculatedName)
}
})
다음은 DeviceDetailsModel에서 얻을 수 있는 값입니다.
val brand: String? #This is the brandName of the Device
val commonName: String?, #This is the most common Name of the Device
val codeName: String?, #This is the codeName of the Device
val modelName: String?, #This is the another uncommon Name of the Device
val calculatedName: String?, #This is the special name that this library tries to create from the above data.
Android 에뮬레이터의 예 -
brand=Google
commonName=Google Android Emulator
codeName=generic_x86_arm
modelName=sdk_gphone_x86
calculatedName=Google Android Emulator
언급URL : https://stackoverflow.com/questions/7071281/get-android-device-name
'programing' 카테고리의 다른 글
키를 기반으로 어레이 요소를 삭제하려면 어떻게 해야 합니다. (0) | 2022.11.19 |
---|---|
JUnit 테스트는 이클립스에서는 합격하지만 Maven Surefire에서는 불합격 (0) | 2022.11.19 |
python에서 데이터베이스에서 읽은 파일을 추적하려면 어떻게 해야 합니까? (0) | 2022.11.19 |
mysql 덤프 및 가져오기 속도 향상 (0) | 2022.11.19 |
mysql-maria 개선을 위한 mysqlTurner 팁DB (0) | 2022.11.19 |