투케이2K

10. (TWOK/UTIL) [Android/Java] C_StateCheck - 블루투스 , 위치 권한 , 네트워크 연결 상태 , NFC , 가속도 센서 활성 상태 확인 본문

투케이2K 유틸파일

10. (TWOK/UTIL) [Android/Java] C_StateCheck - 블루투스 , 위치 권한 , 네트워크 연결 상태 , NFC , 가속도 센서 활성 상태 확인

투케이2K 2022. 3. 21. 09:20

[설 명]

프로그램 : Android / Java

설 명 : 블루투스 , 위치 권한 , 네트워크 연결 상태 , NFC , 가속도 센서 활성 상태 확인

 

[소스 코드]

 

package com.example.testapp;

import static android.content.Context.KEYGUARD_SERVICE;

import android.Manifest;
import android.app.KeyguardManager;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.nfc.NfcAdapter;
import android.os.Build;
import android.telephony.TelephonyManager;
import android.util.Log;

import androidx.core.app.ActivityCompat;

import java.lang.reflect.Method;
import java.util.Set;

public class C_StateCheck {


    /**
     * TODO [클래스 설명]
     * // -----------------------------------------
     * 1. 모바일 기능 활성 , 비활성 체크 클래스
     * 2. 블루투스 , 위치 권한 , 네트워크 연결 상태 , NFC , 흔들기 가속도 센서 활성 상태 확인
     * // -----------------------------------------
     * */





    // TODO [블루투스 지원 기기 및 GPS 활성 상태 확인 실시]
    public static Boolean getBleGpsStateCheck(Context mContext) {

        /**
         * // -----------------------------------------
         * [getBleGpsStateCheck 메소드 설명]
         * // -----------------------------------------
         * 1. 블루투스 지원 기기 체크 >> 블루투스 활성 여부 체크 >> 위치 권한 활성 여부 체크
         * // -----------------------------------------
         * 2. 호출 방법 : if (C_StateCheck.getBleGpsStateCheck(A_Main.this) == true) { } else { }
         * // -----------------------------------------
         * */

        // [리턴 데이터 초기 선언 실시]
        boolean state_result = false;
        try {
            BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
            if(mBluetoothAdapter == null){ // [블루투스를 지원하는 기기인지 확인]
                Log.i("---","---");
                Log.e("//===========//","================================================");
                Log.i("","\n"+"[C_StateCheck >> getBleGpsStateCheck() :: 블루투스 지원 기기 확인]");
                Log.i("","\n"+"[디바이스 :: 블루투스를 지원하지 않는 기기]");
                Log.e("//===========//","================================================");
                Log.i("---","---");

                // [팝업창 호출 실시]
                C_Ui_View.showAlert(
                        mContext,
                        0, // [일반 알림]
                        S_FinalData.AL_TITLE,
                        S_FinalData.AL_NBD,
                        S_FinalData.AL_OK,
                        "",
                        "");
            }
            else { // [블루투스가 켜져있는지 확인]
                Log.i("---","---");
                Log.d("//===========//","================================================");
                Log.i("","\n"+"[C_StateCheck >> getBleGpsStateCheck() :: 블루투스 지원 기기 확인]");
                Log.i("","\n"+"[디바이스 :: 블루투스를 지원하는 기기]");
                Log.d("//===========//","================================================");
                Log.i("---","---");

                if(mBluetoothAdapter.isEnabled() == true){
                    Log.i("---","---");
                    Log.w("//===========//","================================================");
                    Log.i("","\n"+"[C_StateCheck >> getBleGpsStateCheck() :: 블루투스 기능 활성 확인]");
                    Log.i("","\n"+"[상태 :: 블루투스 기능 활성]");
                    Log.w("//===========//","================================================");
                    Log.i("---","---");

                    // [GPS 활성 상태 확인 실시]
                    try {
                        LocationManager locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
                        if(!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ // [위치 권한 비활성인 경우]
                            Log.i("---","---");
                            Log.e("//===========//","================================================");
                            Log.i("","\n"+"[C_StateCheck >> getBleGpsStateCheck() :: GPS 위치 권한 활성 여부 확인]");
                            Log.i("","\n"+"[상태 :: 비활성]");
                            Log.e("//===========//","================================================");
                            Log.i("---","---");

                            // [팝업창 호출 실시]
                            C_Ui_View.showAlert(
                                    mContext,
                                    3, // [위치 권한 설정창 이동]
                                    S_FinalData.AL_TITLE,
                                    S_FinalData.AL_NLE,
                                    S_FinalData.AL_SET,
                                    S_FinalData.AL_NO,
                                    "");
                        }
                        else { // [위치 권한 활성인 경우]
                            Log.i("---","---");
                            Log.w("//===========//","================================================");
                            Log.i("","\n"+"[C_StateCheck >> getBleGpsStateCheck() :: GPS 위치 권한 활성 여부 확인]");
                            Log.i("","\n"+"[상태 :: 활성]");
                            Log.w("//===========//","================================================");
                            Log.i("---","---");

                            // [리턴 결과 삽입]
                            state_result = true;
                        }
                    }
                    catch (Exception e){
                        e.printStackTrace();
                    }
                }
                else {
                    Log.i("---","---");
                    Log.e("//===========//","================================================");
                    Log.i("","\n"+"[C_StateCheck >> getBleGpsStateCheck() :: 블루투스 기능 활성 확인]");
                    Log.i("","\n"+"[상태 :: 블루투스 기능 비활성]");
                    Log.e("//===========//","================================================");
                    Log.i("---","---");

                    // [팝업창 호출 실시]
                    C_Ui_View.showAlert(
                            mContext,
                            2, // [블루투스 설정창 이동]
                            S_FinalData.AL_TITLE,
                            S_FinalData.AL_NBE,
                            S_FinalData.AL_SET,
                            S_FinalData.AL_NO,
                            "");
                }
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
        return state_result;
    }





    // TODO [현재 연결된 네트워크 상태 확인 메소드]
    public static Boolean getWhatOfNetwork(Context mContext){

        /**
         * // -----------------------------------------
         * [getWhatOfNetwork 메소드 설명]
         * // -----------------------------------------
         * 1. 현재 사용자 모바일 디바이스 기기 네트워크 연결 상태 체크
         * // -----------------------------------------
         * 2. 사전 퍼미션 설정 : <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
         * // -----------------------------------------
         * 3. 호출 방법 : if (C_StateCheck.getWhatOfNetwork(A_Main.this) == true) { } else { }
         * // -----------------------------------------
         * */

        try {
            ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
            if (activeNetwork != null) {
                if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
                    Log.i("---","---");
                    Log.d("//===========//","================================================");
                    Log.i("","\n"+"[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 실시]");
                    Log.i("","\n"+"["+"연결 상태 :: "+String.valueOf("와이파이")+"]");
                    Log.d("//===========//","================================================");
                    Log.i("---","---");
                    return true;
                }
                else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
                    Log.i("---","---");
                    Log.d("//===========//","================================================");
                    Log.i("","\n"+"[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 실시]");
                    Log.i("","\n"+"["+"연결 상태 :: "+String.valueOf("모바일")+"]");
                    Log.d("//===========//","================================================");
                    Log.i("---","---");
                    return true;
                }
                else {
                    Log.i("---","---");
                    Log.d("//===========//","================================================");
                    Log.i("","\n"+"[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 실시]");
                    Log.i("","\n"+"["+"연결 상태 :: "+String.valueOf("없음")+"]");
                    Log.d("//===========//","================================================");
                    Log.i("---","---");
                    return false;
                }
            }
            else {
                Log.i("---","---");
                Log.e("//===========//","================================================");
                Log.i("","\n"+"[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 에러]");
                Log.i("","\n"+"["+"error [에러] :: "+"NetworkInfo == null"+"]");
                Log.i("","\n"+"["+"로 직 :: "+"return true 통과 로직 허용"+"]");
                Log.e("//===========//","================================================");
                Log.i("---","---");
                return true;
            }
        }
        catch (Exception e){
            //e.printStackTrace();
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[C_StateCheck >> getWhatOfNetwork() :: 현재 사용중인 네트워크 상태 확인 실시]");
            Log.i("","\n"+"["+"catch [에러] :: "+String.valueOf(e.getMessage())+"]");
            Log.i("","\n"+"["+"로 직 :: "+"return true 통과 로직 허용"+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");
            return true;
        }
    }





    // TODO [모바일 잠금 설정 상태 확인]
    public static Boolean getMobileLock(Context mContext){

        /**
         * // -----------------------------------------
         * [getMobileLock 메소드 설명]
         * // -----------------------------------------
         * 1. 현재 사용자 모바일 디바이스 잠금 설정 상태 확인 실시
         * // -----------------------------------------
         * 2. 호출 방법 : if (C_StateCheck.getMobileLock(A_Main.this) == true) { } else { }
         * // -----------------------------------------
         * */

        try {
            KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService(KEYGUARD_SERVICE);
            if (keyguardManager.isKeyguardSecure() == true) {
                Log.i("---","---");
                Log.d("//===========//","================================================");
                Log.i("","\n"+"[C_StateCheck >> getMobileLock() :: 모바일 잠금 설정 상태 확인]");
                Log.i("","\n"+"["+"잠금 상태 :: "+String.valueOf("잠금 화면 설정 됨")+"]");
                Log.d("//===========//","================================================");
                Log.i("---","---");
                return true;
            }
            else {
                Log.i("---","---");
                Log.e("//===========//","================================================");
                Log.i("","\n"+"[C_StateCheck >> getMobileLock() :: 모바일 잠금 설정 상태 확인]");
                Log.i("","\n"+"["+"잠금 상태 :: "+String.valueOf("잠금 화면 설정 안됨")+"]");
                Log.e("//===========//","================================================");
                Log.i("---","---");
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }





    // TODO [nfc 활성 상태 확인]
    public static Boolean getNfcState(Context mContext){

        /**
         * // -----------------------------------------
         * [getNfcState 메소드 설명]
         * // -----------------------------------------
         * 1. NFC 설정 활성 및 비활성 상태 확인 수행 메소드
         * // -----------------------------------------
         * 2. 호출 방법 : if (C_StateCheck.getNfcState(A_Main.this) == true) { } else { }
         * // -----------------------------------------
         * */

        boolean returnData = false;
        try {
            NfcAdapter nfcAdapter = null;
            nfcAdapter = NfcAdapter.getDefaultAdapter(mContext);
            if(nfcAdapter == null){ // [NFC를 지원하지 않는 기기인지 확인]
                Log.i("---","---");
                Log.e("//===========//","================================================");
                Log.i("","\n"+"[C_StateCheck >> getNfcState() :: NFC 지원하지 않는 모바일 기기]");
                Log.e("//===========//","================================================");
                Log.i("---","---");

                // [팝업창 호출 실시]
                C_Ui_View.showAlert(
                        mContext,
                        0, // [일반 알림]
                        S_FinalData.AL_TITLE,
                        S_FinalData.AL_NFD,
                        S_FinalData.AL_OK,
                        "",
                        "");
            }
            else { //TODO NFC가 켜져있는지 확인 [NFC 지원 기기]
                Log.i("---","---");
                Log.d("//===========//","================================================");
                Log.i("","\n"+"[C_StateCheck >> getNfcState() :: NFC 지원하는 모바일 기기]");
                Log.d("//===========//","================================================");
                Log.i("---","---");
                if(nfcAdapter.isEnabled() == true){
                    Log.i("---","---");
                    Log.w("//===========//","================================================");
                    Log.i("","\n"+"[C_StateCheck >> getNfcState() :: NFC 활성 상태]");
                    Log.w("//===========//","================================================");
                    Log.i("---","---");
                    return true;
                }
                else {
                    Log.i("---","---");
                    Log.e("//===========//","================================================");
                    Log.i("","\n"+"[C_StateCheck >> getNfcState() :: NFC 비활성 상태]");
                    Log.e("//===========//","================================================");
                    Log.i("---","---");

                    // [팝업창 호출 실시]
                    C_Ui_View.showAlert(
                            mContext,
                            4, // [NFC 설정창 이동]
                            S_FinalData.AL_TITLE,
                            S_FinalData.AL_NFE,
                            S_FinalData.AL_SET,
                            S_FinalData.AL_NO,
                            "");
                }
            }
        }
        catch (Exception e){
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[C_StateCheck >> getNfcState() :: NFC 지원하지 않는 모바일 기기]");
            Log.i("","\n"+"[Catch 메시지 :: "+String.valueOf(e.getMessage())+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");

            // [팝업창 호출 실시]
            C_Ui_View.showAlert(
                    mContext,
                    0, // [일반 알림]
                    S_FinalData.AL_TITLE,
                    S_FinalData.AL_NFD,
                    S_FinalData.AL_OK,
                    "",
                    "");
        }
        return false;
    }





    // TODO [흔들기 이벤트 - 가속도 센서 지원 여부 확인]
    public static Boolean checkDeviceAccelerometer(Context mContext){

        /**
         * // -----------------------------------------
         * [checkDeviceAccelerometer 메소드 설명]
         * // -----------------------------------------
         * 1. 사용자 모바일 디바이스 기기 가속도 센서, 흔들기 이벤트 지원 여부 확인
         * // -----------------------------------------
         * 2. 호출 방법 : if (C_StateCheck.checkDeviceAccelerometer(A_Main.this) == true) { } else { }
         * // -----------------------------------------
         * */

        try {
            SensorManager mSensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE);
            Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
            if (sensor != null) {
                Log.i("---","---");
                Log.w("//===========//","================================================");
                Log.i("","\n"+"[C_StateCheck >> checkDeviceAccelerometer() :: 디바이스 가속도 지원 확인 실시]");
                Log.i("","\n"+"[지원 여부 :: true]");
                Log.w("//===========//","================================================");
                Log.i("---","---");
                return true;
            }
            else {
                Log.i("---","---");
                Log.e("//===========//","================================================");
                Log.i("","\n"+"[C_StateCheck >> checkDeviceAccelerometer() :: 디바이스 가속도 지원 확인 실시]");
                Log.i("","\n"+"[지원 여부 :: false]");
                Log.e("//===========//","================================================");
                Log.i("---","---");
                return false;
            }
        }
        catch (Exception e){
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[C_StateCheck >> checkDeviceAccelerometer() :: 디바이스 가속도 지원 확인 실시]");
            Log.i("","\n"+"[Exception :: "+String.valueOf(e.getMessage())+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");
            return false;
        }
    }
    
    
    
    
    
    // TODO [사용자 모바일 디바이스 블루투스 장비 연결 상태 확인]
    public static Boolean bluetoothConnectState(Context mContext) {

        /**
         * // -----------------------------------------
         * [bluetoothConnectState 메소드 설명]
         * // -----------------------------------------
         * 1. 사용자 모바일 디바이스 블루투스 장비 연결 상태 확인
         * // -----------------------------------------
         * 2. 호출 방법 : if (C_StateCheck.bluetoothConnectState(A_Main.this) == true) { } else { }
         * // -----------------------------------------
         * 3. 리턴 결과 : 블루투스 장비가 연결된 경우 true / 아니면 false
         * // -----------------------------------------
         * 4. 필요 퍼미션 :
         *
         * <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
         * // -----------------------------------------
         * */

        // [리턴 결과 반환 변수 선언]
        boolean returnData = false;
        String deviceName = "";
        try {
            /*
             * 1. [페어링 된 블루투스 장비 목록을 얻어옵니다]
             * 2. 블루투스 기능이 활성화된 경우 BluetoothDevice 리스트 목록 표시 / 블루투스 기능이 비활성인 경우 목록 표시 안됨
             * */

            // TODO [안드로이드 12 / 타겟 31 이상 권한 체크 로직 추가 실시]
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
                if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
                    Log.i("---","---");
                    Log.e("//===========//","================================================");
                    Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실패]");
                    Log.i("","\n"+"[error :: "+"Android 12 / target 31 이상 BLUETOOTH_CONNECT 권한 부여 안됨"+"]");
                    Log.e("//===========//","================================================");
                    Log.i("---","---");

                    return returnData;
                }
            }

            Set<BluetoothDevice> bluetoothDevices = BluetoothAdapter.getDefaultAdapter().getBondedDevices();
            Log.i("---","---");
            Log.d("//===========//","================================================");
            Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실시]");
            Log.i("","\n"+"[페어링된 블루투스 장비 목록 :: "+String.valueOf(bluetoothDevices.toString())+"]");
            Log.d("//===========//","================================================");
            Log.i("---","---");

            // [페어링된 블루투스 장비 목록에서 현재 연결된 상태 체크 실시]
            for (BluetoothDevice bluetoothDevice : bluetoothDevices) {
                try {
                    // [isConnected 메소드를 사용해서 페어링된 블루투스 장비 목록에서 개별 장비가 연결되었는지 확인 실시]
                    Method m = bluetoothDevice.getClass().getMethod("isConnected", (Class[]) null);
                    boolean connected = (boolean) m.invoke(bluetoothDevice, (Object[]) null);

                    if (connected == true){ // TODO [블루투스 장비가 연결된 상태]

                        // [연결된 블루투스 디바이스 이름 확인]
                        deviceName = String.valueOf(bluetoothDevice.getName());

                        ///*
                        if (deviceName != null && deviceName.length()>0
                                && deviceName.trim().equals("") == false && deviceName.trim().equals("null") == false){
                        }
                        else {
                            deviceName = String.valueOf(bluetoothDevice.getAddress());
                        }
                        // */

                        // [리턴 결과 삽입]
                        returnData = true;

                        // [반복문 종료]
                        break;
                    }
                }
                catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
        catch (Exception e){
            Log.i("---","---");
            Log.e("//===========//","================================================");
            Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실시]");
            Log.i("","\n"+"[Exception :: "+String.valueOf(e.getMessage())+"]");
            Log.e("//===========//","================================================");
            Log.i("---","---");
        }

        // [로그 출력 실시]
        Log.i("---","---");
        Log.d("//===========//","================================================");
        Log.i("","\n"+"[C_StateCheck >> bluetoothConnectState() :: 블루투스 장비 연결 상태 확인 실시]");
        Log.i("","\n"+"[deviceName :: "+String.valueOf(deviceName)+"]");
        Log.i("","\n"+"[return :: "+String.valueOf(returnData)+"]");
        Log.d("//===========//","================================================");
        Log.i("---","---");

        // [리턴 결과 반환]
        return returnData;
    }
    
    
    
    
    
    // TODO [현재 연결된 네트워크 상태 확인 메소드 : 타겟 31 대응]
    public static Boolean getNetworkConnect(Context mContext) {

        /**
         * // -----------------------------------------
         * [getNetworkConnect 메소드 설명]
         * // -----------------------------------------
         * 1. 현재 사용자 모바일 디바이스 기기 네트워크 연결 상태 체크
         * // -----------------------------------------
         * 2. 사전 퍼미션 설정 : <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
         * // -----------------------------------------
         * 3. 호출 방법 : if (C_StateCheck.getNetworkConnect(A_Main.this) == true) { } else { }
         * // -----------------------------------------
         * */


        // [리턴 변수 선언 실시]
        boolean returnData = true;
        String networkName = "";


        try {
            // [ConnectivityManager 생성]
            ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);


            // [버전 분기 처리]
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // [마시멜로우 이상]

                NetworkCapabilities networkCapabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());
                if (networkCapabilities != null){
                    if(networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)){
                        networkName = "[capabilities] WIFI";
                    }
                    else if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)){
                        networkName = "[capabilities] MOBILE";
                    }
                    else {
                        returnData = false;
                        networkName = "[capabilities] network is null";
                    }
                }
                else {
                    returnData = false;
                    networkName = "[ERROR] networkCapabilities is null";
                }
            }
            else { // [마시멜로우 미만]

                NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
                if (activeNetwork != null) {
                    if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
                        networkName = "[activeNetwork] WIFI";
                    } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
                        networkName = "[activeNetwork] MOBILE";
                    } else {
                        returnData = false;
                        networkName = "[activeNetwork] network is null";
                    }
                } else {
                    returnData = false;
                    networkName = "[ERROR] activeNetwork is null";
                }
            }

        }
        catch (Exception e) {
            e.printStackTrace();
        }


        // [로그 출력 실시]
        Log.i("---","---" + "\n");
        Log.d("//===========//","================================================");
        Log.i("","\n"+"[C_StateCheck >> getNetworkConnect() :: 현재 연결된 네트워크 상태 확인]");
        Log.i("","\n"+"-----------------------------------------");
        Log.i("","\n"+"[NETWORK :: "+ networkName +"]");
        Log.i("","\n"+"-----------------------------------------");
        Log.i("","\n"+"[RETURN :: "+ returnData +"]");
        Log.d("//===========//","================================================");
        Log.i("---","---" + "\n");


        // [리턴 반환 실시]
        return returnData;
    }
    
    
    
    
    
    // TODO [블루투스 활성 상태 체크 : 타겟 31 대응]
    public static Boolean getBleEnable(Context mContext) {

        /**
         * // -----------------------------------------
         * [getBleEnable 메소드 설명]
         * // -----------------------------------------
         * 1. 블루투스 활성 상태 확인 메소드
         * // -----------------------------------------
         * 2. 호출 방법 : C_StateCheck.getBleEnable(A_Intro.this);
         * // -----------------------------------------
         * 3. 리턴 데이터 : 블루투스 가 활성인 경우 true / 아니면 false
         * // -----------------------------------------
         * */


        // [리턴 변수 선언 실시]
        boolean returnData = false;
        String checkLogic = "";


        // [로직 처리 실시]
        try {


            // [객체 생성 실시]
            BluetoothManager bluetoothManager = (BluetoothManager) mContext.getSystemService(Context.BLUETOOTH_SERVICE);
            BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();


            // [활성 여부 확인]
            if (bluetoothAdapter != null){
                if (bluetoothAdapter.isEnabled() == true){
                    returnData = true;
                    checkLogic = "[ENABLE] TRUE";
                }
                else {
                    checkLogic = "[ENABLE] FALSE";
                }
            }
            else {
                checkLogic = "[ERROR] bluetoothAdapter is null";
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }


        // [로그 출력 실시]
        Log.i("---","---" + "\n");
        Log.d("//===========//","================================================");
        Log.i("","\n"+"[C_StateCheck >> getBleEnable() :: 블루투스 활성 상태 확인]");
        Log.i("","\n"+"-----------------------------------------");
        Log.i("","\n"+"[CHECK :: "+ checkLogic +"]");
        Log.i("","\n"+"-----------------------------------------");
        Log.i("","\n"+"[RETURN :: "+ returnData +"]");
        Log.d("//===========//","================================================");
        Log.i("---","---" + "\n");


        // [리턴 반환 실시]
        return returnData;
    }
    
    
    
    
    
    // TODO [GPS 위치 권한 활성 상태 체크 : 타겟 31 대응]
    public static Boolean getGpsEnable(Context mContext) {

        /**
         * // -----------------------------------------
         * [getGpsEnable 메소드 설명]
         * // -----------------------------------------
         * 1. Gps 위치 권한 활성 상태 확인 메소드
         * // -----------------------------------------
         * 2. 호출 방법 : C_StateCheck.getGpsEnable(A_Intro.this);
         * // -----------------------------------------
         * 3. 리턴 데이터 : GPS 가 활성인 경우 true / 아니면 false
         * // -----------------------------------------
         * */


        // [리턴 변수 선언 실시]
        boolean returnData = false;
        String checkLogic = "";


        // [로직 처리 실시]
        try {

            // [객체 생성 실시]
            LocationManager locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);

            // [활성 여부 확인]
            if (locationManager != null){
                if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) == true){
                    returnData = true;
                    checkLogic = "[ENABLE] TRUE";
                }
                else {
                    checkLogic = "[ENABLE] FALSE";
                }
            }
            else {
                checkLogic = "[ERROR] locationManager is null";
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }


        // [로그 출력 실시]
        Log.i("---","---" + "\n");
        Log.d("//===========//","================================================");
        Log.i("","\n"+"[C_StateCheck >> getGpsEnable() :: Gps 위치 권한 활성 상태 확인]");
        Log.i("","\n"+"-----------------------------------------");
        Log.i("","\n"+"[CHECK :: "+ checkLogic +"]");
        Log.i("","\n"+"-----------------------------------------");
        Log.i("","\n"+"[RETURN :: "+ returnData +"]");
        Log.d("//===========//","================================================");
        Log.i("---","---" + "\n");


        // [리턴 반환 실시]
        return returnData;
    }



} // TODO [클래스 종료]

 

반응형
Comments