일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- DFS
- TypeScript
- Redux
- 안드로이드
- network
- 리트코드
- Database
- DP
- CS
- 그레이들
- 백준
- Javascript
- Python
- LeetCode
- vscode
- frontend
- 자바
- Graph
- java
- db
- 동적 계획법
- 다이나믹 프로그래밍
- 알고리즘
- BFS
- VIM
- git
- 프로그래머스
- react
- Algorithm
- Data Structure
Archives
- Today
- Total
늘 겸손하게
블루투스 기기 uuid 받기 본문
안드로이드의 BluetoothDevice 클래스의 메소드 getUuids()로 uuid를 받아와 화면에 출력하려고 합니다.
아래 코드의 device 는 BluetoothDevice 객체입니다.
다른 디바이스 정보들은 아무 문제없이 출력됐지만
이상하게 getUuids() 메소드로 받아온 ParcelUuid 객체에 접근만 하려고 하면 앱이 튕기더군요
코드 줄 777 : ParcelUuid [] pU = device.getUuids()
그래서 해결책을 찾았습니다
https://stackoverflow.com/questions/4032391/android-bluetooth-where-can-i-get-uuid
getUuids() 메소드를 invoke 하는 방법입니다. 아마 device를 읽는 작업이 다 완료되지 않은 상태에서 getUuids() 메소드를 호출하여 null 이 반환되고 앱이 튕기지 않았나 추측됩니다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
try {
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
Method getUuidsMethod = BluetoothAdapter.class.getDeclaredMethod("getUuids", null);
ParcelUuid[] uuids = (ParcelUuid[]) getUuidsMethod.invoke(adapter, null);
if(uuids != null) {
for (ParcelUuid uuid : uuids) {
Log.d(TAG, "UUID: " + uuid.getUuid().toString());
}
}else{
Log.d(TAG, "Uuids not found, be sure to enable Bluetooth!");
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
|
cs |
퍼미션 추가도 잊지 마세요
mainfests 디렉토리 하위의 AndroidManifest.xml 에 추가해주면 됩니다.
1
|
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
cs |
저는 코드를 살짝 수정하여 AlertDialog에 uuid가 출력되도록 하였습니다.
'Programming > Android' 카테고리의 다른 글
안드로이드 installed build tools revision 31.0 0 is corrupted (0) | 2021.07.29 |
---|---|
안드로이드 웹 사이트 띄우기 (0) | 2021.07.23 |
안드로이드 스튜디오 API level 업그레이드 (0) | 2021.07.23 |
안드로이드 프로젝트를 apk 파일로 추출하기 (0) | 2021.07.21 |
안드로이드 스튜디오가 안 열려요... + JDK 환경 변수 설정 (0) | 2021.07.20 |