您的位置:首页 > 移动开发 > Android开发

Android中判断Wift是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏

2017-07-28 10:10 671 查看
第一个问题判断手机当前上网用的是sim卡还是wifi,我写了一个封装的方法,以后可以拿来用:

[java] view
plain copy

print?

/**

* check the internet is

* mobile or wifi

* add by wangxianming

* in 2012-03-22

*/

private boolean checkWifi() {

boolean isWifiConnect = true;

ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);

[java] view
plain copy

print?

//check the networkInfos numbers

NetworkInfo[] networkInfos = cm.getAllNetworkInfo();

for (int i = 0; i<networkInfos.length; i++) {

if (networkInfos[i].getState() == NetworkInfo.State.CONNECTED) {

if(networkInfos[i].getType() == cm.TYPE_MOBILE) {

isWifiConnect = false;

}

if(networkInfos[i].getType() == cm.TYPE_WIFI) {

isWifiConnect = true;

}

}

}

return isWifiConnect;

注:判断网络和WIFI是否连接

Java代码


public static boolean checkNetworkConnection(Context context)

{

final ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

final android.net.NetworkInfo wifi =connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

final android.net.NetworkInfo mobile =connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

if(wifi.isAvailable()||mobile.isAvailable())

return true;

else

return false;

}

第二个例子:判断当前的手机屏幕是否开启了旋转屏幕这个选项:

[java] view
plain copy

print?

/**

* ACCELEROMETER_ROTATION---->explain:

*

* Control whether the accelerometer will be

* used to change screen orientation.

* If 0, it will not be used unless explicitly

* requested by the application;

* if 1, it will be used by default

* unless explicitly disabled by the application.

* Constant Value: "accelerometer_rotation"

*/

systemGravity = Settings.System.getInt(this

.getContentResolver(),

Settings.System.ACCELEROMETER_ROTATION);//1 is open;0 is close;

第三个是在代码中注册监听内存卡状态的广播:

[java] view
plain copy

print?

IntentFilter intentFilter=new IntentFilter);

intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);

intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);

intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED);

intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);

registerReceiver(sdcardListener,intentFilter);

有registerReceiver()注册广播,就有unregisterReceiver()方法,他们是成对出现的。

如果在onCreate()方法中注册广播,就在onDestroy()方法中释放。

如果在onResume()方法中注册广播,就在onPause()方法中释放。



在代码中写个内部类的广播:

[java] view
plain copy

print?

<span style="color:#000000;FONT-SIZE: 16px">private final BroadcastReceiver sdcardListener=new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

Toast.makeText(SummaryAppMainActivityActivity.this, R.string.sd_removed, 2000).show();

}

};</span>

第四个是全屏的设置:写一个简单的方法中;

[java] view
plain copy

print?

<span style="color:#000000;FONT-SIZE: 16px"> //set the activity is fullScreen

private void setFullScreen() {

misFullscreen = !misFullscreen;

if (misFullscreen) {

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

} else {

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐