Notice
Recent Posts
Recent Comments
Link
투케이2K
141. (AndroidStudio/android/java) 블루투스 (bluetooth) 및 GPS 기능 활성 상태 체크 본문
Android
141. (AndroidStudio/android/java) 블루투스 (bluetooth) 및 GPS 기능 활성 상태 체크
투케이2K 2021. 5. 12. 15:01/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
[블루투스 및 GPS 기능 활성 상태 확인 호출 부분]
if(getBleGpsStateCheck() == true){
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_State > 블루투스 및 GPS 활성 상태 확인]");
Log.d("","\n"+"[상태 : 모두 정상 활성화 상태]");
Log.w("//===========//","================================================");
Log.d("---","---");
}
else {
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_State > 블루투스 및 GPS 활성 상태 확인]");
Log.d("","\n"+"[상태 : 기능 비활성 상태 확인]");
Log.e("//===========//","================================================");
Log.d("---","---");
}
[블루투스 기능 활성 여부 및 GPS 기능 활성 체크 메소드]
public Boolean getBleGpsStateCheck(){
/**
* TODO [필요 퍼미션]
* <uses-permission android:name="android.permission.BLUETOOTH"/>
* <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
* <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
* <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
* */
boolean state_result = false;
try {
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter == null){ //TODO [블루투스를 지원하는 기기인지 확인]
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_State > getBleGpsStateCheck() 메소드 : 블루투스 지원 기기 확인]");
Log.d("","\n"+"[디바이스 : 블루투스를 지원하지 않는 기기]");
Log.e("//===========//","================================================");
Log.d("---","---");
//TODO [Alert 팝업창 알림 실시]
getAlertDialog("[알림]",
"사용자 디바이스는 블루투스 기능을 지원하지 않는 단말기입니다.",
"확인", "취소", "");
}
else { //TODO [블루투스가 켜져있는지 확인]
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_State > getBleGpsStateCheck() 메소드 : 블루투스 지원 기기 확인]");
Log.d("","\n"+"[디바이스 : 블루투스를 지원하는 기기]");
Log.w("//===========//","================================================");
Log.d("---","---");
if(mBluetoothAdapter.isEnabled() == true){
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_State > getBleGpsStateCheck() 메소드 : 블루투스 기능 활성 확인]");
Log.d("","\n"+"[상태 : 블루투스 기능 활성]");
Log.w("//===========//","================================================");
Log.d("---","---");
//TODO [GPS 활성 상태 확인 실시]
try {
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if(!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ //TODO 위치 권한 비활성인 경우
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_State > getBleGpsStateCheck() 메소드 : GPS 위치 권한 활성 여부 확인]");
Log.d("","\n"+"[상태 : 비활성]");
Log.e("//===========//","================================================");
Log.d("---","---");
//TODO [Alert 팝업창 알림 실시]
getAlertDialog("[알림]",
"GPS 기능이 비활성 상태입니다.\nGPS 기능을 활성화해야 정상 기능 사용이 가능합니다.",
"확인", "취소", "");
}
else { //TODO 위치 권한 활성인 경우
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_State > getBleGpsStateCheck() 메소드 : GPS 위치 권한 활성 여부 확인]");
Log.d("","\n"+"[상태 : 활성]");
Log.w("//===========//","================================================");
Log.d("---","---");
state_result = true;
}
}
catch (Exception e){
e.printStackTrace();
}
}
else {
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_State > getBleGpsStateCheck() 메소드 : 블루투스 기능 활성 확인]");
Log.d("","\n"+"[상태 : 블루투스 기능 비활성]");
Log.e("//===========//","================================================");
Log.d("---","---");
//TODO [Alert 팝업창 알림 실시]
getAlertDialog("[알림]",
"블루투스 기능이 비활성 상태입니다.\n블루투스 기능을 활성화해야 정상 기능 사용이 가능합니다.",
"확인", "취소", "");
}
}
}
catch (Exception e){
e.printStackTrace();
}
return state_result;
}
[팝업창 호출 및 인텐트 이동]
//TODO [AlertDialog 팝업창 호출 메소드 정의 실시]
public void getAlertDialog(String header, String content, String ok, String no, String normal){
//TODO 타이틀 및 내용 표시
final String Tittle = header;
final String Message = content;
//TODO 버튼 이름 정의
String buttonNo = no;
String buttonYes = ok;
String buttonNature = normal;
//TODO AlertDialog 팝업창 생성
new AlertDialog.Builder(A_State.this)
.setTitle(Tittle) //[팝업창 타이틀 지정]
//.setIcon(R.drawable.tk_app_icon) //[팝업창 아이콘 지정]
.setMessage(Message) //[팝업창 내용 지정]
.setCancelable(false) //[외부 레이아웃 클릭시도 팝업창이 사라지지않게 설정]
.setPositiveButton(buttonYes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
// TODO [메시지 내용에 따라 분기 처리 실시]
if(Message.contains("블루투스") && Message.contains("비활성")){
goBleSettingsIntent(); //TODO [블루투스 설정창 이동 실시]
}
else if(Message.contains("GPS") && Message.contains("비활성")){
goGpsSettingsIntent(); //TODO [GPS 기능 설정창 이동 실시]
}
}
})
.setNegativeButton(buttonNo, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.setNeutralButton(buttonNature, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.show();
}
//TODO [안드로이드 시스템 블루투스 설정창 이동]
public void goBleSettingsIntent(){
try {
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[BeaconScan > goBleSettingsIntent() 메소드 : 블루투스 설정창 인텐트 이동 실시]");
Log.w("//===========//","================================================");
Log.d("---","---");
Intent go_ble = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS);
go_ble.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(go_ble);
overridePendingTransition(0, 0);
}
catch (Exception e){
e.printStackTrace();
}
}
//TODO [안드로이드 시스템 GPS 설정창 이동]
public void goGpsSettingsIntent(){
try {
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[BeaconScan > goGpsSettingsIntent() 메소드 : 위치 권한 설정창 인텐트 이동 실시]");
Log.w("//===========//","================================================");
Log.d("---","---");
Intent go_gps = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
go_gps.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(go_gps);
overridePendingTransition(0, 0);
}
catch (Exception e){
e.printStackTrace();
}
}
/* =========================== */
/* =========================== */
[결과 출력]
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments