在实际应用中,我们不希望在教室网络,打开游戏就显示较大的声音,进而影响上课质量,因此,就需要让程序变得智能,让应用程序可以根据使用者当前网络状态,自动进行静音等操作。
本次内容分为两部分:1。识别网络环境2。实现应用自动静音。
<>强自动静音强>
/* * *实现静音功能 */私人空间silentSwitchOn () { AudioManager AudioManager=(AudioManager) getSystemService (Context.AUDIO_SERVICE); 如果(audioManager !=null) { audioManager.setRingerMode (AudioManager.RINGER_MODE_SILENT);//静音模式 audioManager.setStreamVolume (AudioManager。STREAM_MUSIC 0 AudioManager.FLAG_PLAY_SOUND);//媒体音量设置为0(静音) } }
其中AudioManager.STREAM_MUSIC代表媒体音量,也可以替换成其他的类型,获取其他类型音量。
<>强监听音量键被按下强>
在活动重写onKeyDown方法
公共布尔> & lt; uses-permission android: name=" android.permission。ACCESS_NETWORK_STATE "/祝辞
1。判断是否有网络连接
公共静态布尔isNetworkConnected(上下文语境){如果(上下文!=null) {ConnectivityManager mConnectivityManager=(ConnectivityManager)上下文.getSystemService (Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo=mConnectivityManager.getActiveNetworkInfo ();如果(mNetworkInfo !=null){返回mNetworkInfo.isAvailable ();}}返回false;}
有网时返回真,没网时返回错误的。
1。判断WIFI网络是否可用
公共静态布尔isWifiConnected(上下文语境){如果(上下文!=null) {ConnectivityManager mConnectivityManager=(ConnectivityManager)上下文.getSystemService (Context.CONNECTIVITY_SERVICE);NetworkInfo mWiFiNetworkInfo=mConnectivityManager .getNetworkInfo (ConnectivityManager.TYPE_WIFI);如果(mWiFiNetworkInfo !=null){返回mWiFiNetworkInfo.isAvailable ();}}返回false;}
是WIFI网络返回真,不是WIFI返回错误的。
1。判断数据流量是否可用
公共静态int getConnectedType(上下文语境){如果(上下文!=null) {ConnectivityManager mConnectivityManager=(ConnectivityManager)上下文.getSystemService (Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo=mConnectivityManager.getActiveNetworkInfo ();如果(mNetworkInfo !=零,,mNetworkInfo.isAvailable()){返回mNetworkInfo.getType ();}}返回1;}
是数据流量时返回真,不是返回错误的。
获取当前网络连接的类型信息
公共静态int getConnectedType(上下文语境){如果(上下文!=null) {ConnectivityManager mConnectivityManager=(ConnectivityManager)上下文.getSystemService (Context.CONNECTIVITY_SERVICE);NetworkInfo mNetworkInfo=mConnectivityManager.getActiveNetworkInfo ();如果(mNetworkInfo !=零,,mNetworkInfo.isAvailable()){返回mNetworkInfo.getType ();}}返回1;}
获取当前的网络状态
没有网络:0 WIFI网络:1 3 g网络:2 2 g网络:3
公共静态int getAPNType(上下文语境){int netType=0;ConnectivityManager connMgr=(ConnectivityManager)上下文.getSystemService (Context.CONNECTIVITY_SERVICE);NetworkInfo NetworkInfo=connMgr.getActiveNetworkInfo ();如果(networkInfo==null){返回netType;}int nType=networkInfo.getType ();如果(nType==ConnectivityManager.TYPE_WIFI) {netType=1;//无线}其他如果(nType==ConnectivityManager.TYPE_MOBILE) {int nSubType=networkInfo.getSubtype ();TelephonyManager mTelephony=(TelephonyManager)上下文.getSystemService (Context.TELEPHONY_SERVICE);如果(nSubType==TelephonyManager。NETWORK_TYPE_UMTS,,! mTelephony.isNetworkRoaming ()) {netType=2;//3 g}其他{netType=3;//2 g}}返回netType;}
1。判断是否是教学点网络
/* * *判断是否是教学点网络,如果是教学点网络,默认静音 */私人空间enablePlay () { 字符串wifiNameSp=(字符串)CommonUtils.getMySP(这个(上下文),“wi - fi名称(字符串)”“wifiName”字符串。类”、“); 字符串wifiName=CommonUtils.getConnectWifiSsid (); 如果(! TextUtils.isEmpty (wifiNameSp),,! TextUtils.isEmpty (wifiName) ,,CommonUtils。isWifiRequirements (wifiName wifiNameSp,真的)){//默认静音 silentSwitchOn ();//调用开始的静音方法 } }
以上所述是小编给大家介绍的Android判断网络状态对音频静音的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!