안드로이드 개발 질문/답변
(글 수 45,052)
폰상태를 알고 싶습니다.
현재 폰이 무음상태인지.. 진동인지, 아니면 벨소리로 되어있는지 를...
알고싶어요~~^^
모르시는 분을 위해 네트워크 상태를 파악하는 코드는 다음과 같습니다.
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
boolean isWifiAvail = ni.isAvailable(); // 와이파이 사용가능 여부
boolean isWifiConn = ni.isConnected(); // 와아파이 연결여부
ni = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isMobileAvail = ni.isAvailable(); // 네트워크 사용가능 여부
boolean isMobileConn = ni.isConnected(); // 네트워크 연결여부
String status = "WiFi\nAvail = " + isWifiAvail + "\nConn = "
+ isWifiConn + "\nMobile\nAvail = " + isMobileAvail
+ "\nConn = " + isMobileConn + "\n";
Log.w(TAG, "status : " + status);
아마 권한도 같이 주셔야 할겁니다.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>




AudioManager.RINGER_MODE_CHANGED_ACTION <- 이거를 BroadcastReceiver에 등록 하면 진동 모드 설정 해제시 이벤트를 받을수 있습니다.
2. 방법
int valueMode = ((AudioManager)getBaseContext().getSystemService(Context.AUDIO_SERVICE)).getRingerMode();
넘오 오는 값은 아래와 같습니다.
/* 현재 오디오모드확인 */
mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL : 벨 모드일 경우(값0)
mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT : 사일런트 모드일 경우(값2)
mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE : 진동모드일 경우(값1)
//AudioManager.ACTION_AUDIO_BECOMING_NOISY : 이어잭을 꼽고 있다가 뺏을 경우.