AD

android 如何判断当前是否为飞行模式

android 开发过程中如何判断当前是否是飞行模式和侦听airplane mode change,本文将以此问题详细介绍,需要了解的朋友可以参考下

Android中如何判断系统当前是否处于飞行模式中:

public static boolean IsAirModeOn(Context context) {
return (Settings.System.getInt(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0) == 1 ? true : false);
}

如何切换飞行模式

复制代码 代码如下:

public static void setAirplaneMode(Context context, boolean enabling) {
Settings.System.putInt(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, enabling ? 1 : 0);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", enabling);
context.sendBroadcast(intent);
}

如何注册和取消自动飞行时间
注册

复制代码 代码如下:

AlarmManager am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(AIR_ALERT_ACTION);
Parcel out = Parcel.obtain();
air.writeToParcel(out, 0);
out.setDataPosition(0);
intent.putExtra(AIR_RAW_DATA, out.marshall());
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, atTimeInMillis, sender);取消
AlarmManager am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
endingIntent sender = PendingIntent.getBroadcast(context, 0,
new Intent(action), PendingIntent.FLAG_CANCEL_CURRENT);
am.cancel(sender);

如何控制切换飞行模式的硬件(cell,Bluetooth,wifi)

复制代码 代码如下:

Settings.System.putString(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_RADIOS, air_mode_radios);air_mode_radios为一个这样的字符串,看android源码中android/provider/Settings.java 

/***
* Whether Airplane Mode is on.
*/
public static final String AIRPLANE_MODE_ON = "airplane_mode_on";
/***
* Constant for use in AIRPLANE_MODE_RADIOS to specify Bluetooth radio.
*/
public static final String RADIO_BLUETOOTH = "bluetooth";
/***
* Constant for use in AIRPLANE_MODE_RADIOS to specify Wi-Fi radio.
*/
public static final String RADIO_WIFI = "wifi";
/***
* Constant for use in AIRPLANE_MODE_RADIOS to specify Cellular radio.
*/
public static final String RADIO_CELL = "cell";
/***
* A comma separated list of radios that need to be disabled when airplane mode
* is on. This overrides WIFI_ON and BLUETOOTH_ON, if Wi-Fi and bluetooth are
* included in the comma separated list.
*/
public static final String AIRPLANE_MODE_RADIOS = "airplane_mode_radios";
/***
* A comma separated list of radios that should to be disabled when airplane mode
* is on, but can be manually reenabled by the user. For example, if RADIO_WIFI is
* added to both AIRPLANE_MODE_RADIOS and AIRPLANE_MODE_TOGGLEABLE_RADIOS, then Wifi
* will be turned off when entering airplane mode, but the user will be able to reenable
* Wifi in the Settings app.
*
* {@hide}
*/
public static final String AIRPLANE_MODE_TOGGLEABLE_RADIOS = "airplane_mode_toggleable_radios";

如果air_mode_radios=“cell,bluetooth,wifi”,这就便是切换飞行模式是切换字符串中的这cell,bluetooth,wifi硬件,我们可以通过设置该字符串的值,来控制这三个硬件是否在切换飞行模式是进行切换状态。

标签: 判断, 飞行模式
分类: Android
时间: 2013-10-19

相关文章

  1. Android判断是否为飞行模式简单方法

    这篇文章主要介绍了Android判断是否为飞行模式简单方法,本文使用最简单的方法实现判断是否为飞行模式,需要的朋友可以参考下 判断是否为飞行模式: boolean isAirplaneMode = Settings.Sy ...
  2. Android有时在飞行模式下获取不到网络状态的变化

    接收网络状态变化的Receiver是在代码中动态注册的,也就是说在xml里面没有注册.然后在使用过程中,当有些手机在飞行模式下打开wifi我就获取不到网络状态的变化,需要退出程序再进来一次才能修改已经显示出来的网络状态. ...
  3. Android中判断网络连接是否可用及监控网络状态

    获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android中判断网络连接是否可用及监控网络状态,感兴趣的朋友可以参考下 获取网络信息需要在AndroidManifest.x ...
  4. Android中判断网络是否可用的代码分享

    这篇文章主要介绍了Android中判断网络是否可用的代码分享,本文直接给出实现代码,需要的朋友可以参考下 package cn.hackcoder.beautyreader.broadcast; import andro ...
  5. Android实现判断手机未接来电及处理方法

    这篇文章主要介绍了Android实现判断手机未接来电及处理方法,需要的朋友可以参考下 通常来说Android手机没有未接来电的监听器,如果要实现对未接来电的处理,则需要自己编写程序来实现.本文所述程序实例即为Androi ...
  6. Android 自动判断是电话,网址,EMAIL方法之Linkify的使用

    本篇文章小编为大家介绍,在Android中 自动判断是电话,网址,EMAIL方法之Linkify的使用.需要的朋友参考下 当我们在一个EditText输入电话或者网址还是Email的时候,让Android自动判断,当我们 ...
  7. Android中判断是否有前置摄像头.后置摄像头的方法

    这篇文章主要介绍了Android中判断是否有前置摄像头.后置摄像头的方法,本文直接给出实现代码,需要的朋友可以参考下 通常我们进行摄像头操作,如扫描二维码需要判断是否有后置摄像头(Rear camera),比如Nexus ...
  8. Android中判断手机是否联网实例

    这篇文章主要介绍了Android中判断手机是否联网实例,包括xml配置文件及功能代码的实现,需要的朋友可以参考下 本文实例讲述了Android中判断手机是否联网的方法,分享给大家供大家参考.具体步骤如下: 首先在Andr ...
  9. Android 如何定制vibrator的各种震动模式M 具体方法

    这篇文章介绍了Android 如何定制vibrator的各种震动模式M 具体方法,有需要的朋友可以参考一下 一般振动时间的配置在如下文件: frameworks/base/core/res/res/values/conf ...
  10. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十六)飞行模式 – 自由VS天空

    曾几何时开始迷恋无垠的天际,幻想着插上翅膀去飞翔.<天翼之链>.<奇迹>.<梦幻诛仙>向无数玩家展示了飞行的世界.翅膀,常常是一种身份的象征,但如能再赋予它自由的含义,好比<永恒 ...
  11. Android中判断有无可用网络的代码(是否是3G或者WIFI网络)

    在android开发中经常会遇到的判断有无可用网络的代码,防止客户流量损失 ConnectivityManager mConnectivity = (ConnectivityManager)getSystemServic ...
  12. Android源码学习之工厂方法模式应用及优势介绍

    工厂方法模式定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类,感兴趣的朋友可以了解下哦 工厂方法模式定义: Define an interface for creating ...
  13. android 中判断WiFi是否可用的可靠方法 ,android 是否联网

    在一些程序中,需要从网上下载数据,或者通过其他方式对网络产生流量,当wifi不可用时应该提示用户wifi已经不可用了,是否继续,因为如果wifi掉了,那么程序可能采用3G卡或其他的收费的渠道使用网络,会导在不知情时产生大 ...
  14. [Android]Activity的四种加载模式

    在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity.可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity.这需要为Activit ...
  15. android地图,判断坐标是否在你要求的范围内

    第一,先定一个一个pojo.就是一个对象,对象里有 id 经度lag 维度lat public class Company { private int id; public int getId() { return id ...
  16. Android中判断状态栏是否存在

    在开发一个程序,需要根据当前状态栏的高度(如果是全屏状态,状态栏高度则为0)来计算一个View位于屏幕中的位置,因此就需要判断当前状态栏是否存在,我是这样判断的: WindowManager.LayoutParams a ...
  17. 谷歌Android 3.0新版系统智能手机模式曝光

    Android 3.0模拟器中的手机模式 谷歌上周发布了Android 3.0软件开发套件预览版.近日有开发者发现其中包含的Android模拟器可以调节到智能手机模式,暗示Android 3.0可能也支持智能手机. 此前 ...
  18. iOS 7和Android 4.4奇巧巧克力:巨人之争

    Android的粉丝为Google Nexus 5的发布而举杯同庆.LG的这款智能手机使用了最前沿的科技却提供了难以置信的合理价格.同时,还有另外一个理由让我们兴奋--它是搭载了Google最新一代的手机操作系统Andr ...
  19. 深入理解Android:Telephony原理剖析与最佳实践 发布

    深入理解Android:Telephony原理剖析与最佳实践(经典畅销书"深入理解Android"系列新作,从源码角度深入解析Telephony的架构设计与实现原理,深刻揭示Android系统的通信机 ...