Android 常用的蓝牙,GPS,网络等状态检测方法汇总

本贴最后更新于 2013 天前,其中的信息可能已经物是人非

序言

记录 Android 的一些判断设备状态的方法。

1.判断网络是否可用

// 是否有可用网络
	private boolean isNetworkConnected() {
		ConnectivityManager cm = 
				(ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo network = cm.getActiveNetworkInfo();
		if (network != null) {
			return network.isAvailable();
		}
		return false;
	}

2.判断 wifi 是否可用

// Wifi是否可用
	private boolean isWifiEnable() {
		WifiManager wifiManager = (WifiManager) mContext
				.getSystemService(Context.WIFI_SERVICE);
		return wifiManager.isWifiEnabled();
	}

3.判断 GPS 是否可用

// Gps是否可用
	private boolean isGpsEnable() {
		LocationManager locationManager = 
				((LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE));
		return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
	}

4.判断蓝牙是否可用

// 蓝牙是否可用
public static boolean isBluetoothEnabled() {
    BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
 if (bluetoothAdapter != null) {
        return bluetoothAdapter.isEnabled();
  }
    return false;
}

5.判断是否有 SIM 卡

/**
 * 判断是否包含SIM卡
 *
 * @return 状态
 */
public static boolean ishasSimCard(Context context) {
    TelephonyManager telMgr = (TelephonyManager)
            context.getSystemService(Context.TELEPHONY_SERVICE);
    int simState = telMgr.getSimState();
    boolean result = true;
    switch (simState) {
        case TelephonyManager.SIM_STATE_ABSENT:
            result = false; // 没有SIM卡
            break;
        case TelephonyManager.SIM_STATE_UNKNOWN:
            result = false;
            break;
    }
    Log.d(TAG, result ? "有SIM卡" : "无SIM卡");
    return result;
}

6.判断是否存在 SD 卡

// 是否存在SD卡
private boolean ExistSDCard() {  

    if (android.os.Environment.getExternalStorageState().equals(  

    android.os.Environment.MEDIA_MOUNTED)) {  

    return true;  

    } else  

    return false;  

    }

7.判断屏幕是否点亮

//判断屏幕是否点亮
public static boolean isScreenOn(){
    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    boolean isScreenOn = pm.isScreenOn();
    return isScreenOn;
}

8.判断软键盘是否打开

//判断软键盘是否打开
 public boolean isSoftShowing() {
        //获取当前屏幕内容的高度
        int screenHeight = getWindow().getDecorView().getHeight();
        //获取View可见区域的bottom
        Rect rect = new Rect();
        getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
 
        return screenHeight - rect.bottom != 0;
    }

9.判断自动旋转屏幕是否打开

// 判断自动旋转屏幕是否打开
public boolean isAutoRotate(){
    int screenchange = Settings.System.getInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION);
    if (screenchange == 1) {
        return true;
	 }else {
        return false;
	 }
}

10.判断是否在播放音频

// 判断是否在播放音频
public static boolean isMusicPlay(){
    AudioManager audioManager = (AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE);
    return audioManager.isMusicActive();
}
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    333 引用 • 323 回帖 • 70 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...