判断项目的网络是否可用然后打开设置面板
2016-04-20 20:22
447 查看
步骤一.
package com.example.network;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetworkUtil {
/**
* 检查网络是否可用
*
* @param context
* @return
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager manager = (ConnectivityManager) context
.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
if (manager == null) {
return false;
}
NetworkInfo networkinfo = manager.getActiveNetworkInfo();
if (networkinfo == null || !networkinfo.isAvailable()) {
return false;
}
return true;
}
}
步骤二.
package com.example.network;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
Log.i("MainActivity", "onStart");
if (!NetworkUtil.isNetworkAvailable(this)) {
showSetNetworkUI(this);
} else {
Toast.makeText(this, "网络可用...", 0).show();
}
super.onStart();
}
@Override
protected void onResume() {
Log.i("MainActivity", "onStart");
super.onResume();
}
/*
* 打开设置网络界面
*/
public void showSetNetworkUI(final Context context) {
// 提示对话框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("网络设置提示")
.setMessage("网络连接不可用,是否进行设置?")
.setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent intent = null;
// 判断手机系统的版本 即API大于10 就是3.0或以上版本
if (android.os.Build.VERSION.SDK_INT > 10) {
intent = new Intent(
android.provider.Settings.ACTION_WIFI_SETTINGS);
} else {
intent = new Intent();
ComponentName component = new ComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
context.startActivity(intent);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
步骤三.
在获得到json解析完之后在发message呈现adapter之前的时候 判断得到的entity是否为空 不为空的话往下走
记得在 Manifest文件中加入以下权限
[html] view
plain copy
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
步骤4 对于选择的网络进行的一个判断是wifi还是mobile
private int NetworkState() {
ConnectivityManager conn=(ConnectivityManager) this.getSystemService(this.CONNECTIVITY_SERVICE);
NetworkInfo wifi = conn.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = conn.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable()) {
Toast.makeText(this, "wifi链接成功", Toast.LENGTH_SHORT).show();
return 1;
}else if(mobile.isAvailable()){
Toast.makeText(this, "您连接的是mobile网络", Toast.LENGTH_SHORT).show();
return 2;
}else{
return 0;
}
}
package com.example.network;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetworkUtil {
/**
* 检查网络是否可用
*
* @param context
* @return
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager manager = (ConnectivityManager) context
.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
if (manager == null) {
return false;
}
NetworkInfo networkinfo = manager.getActiveNetworkInfo();
if (networkinfo == null || !networkinfo.isAvailable()) {
return false;
}
return true;
}
}
步骤二.
package com.example.network;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
Log.i("MainActivity", "onStart");
if (!NetworkUtil.isNetworkAvailable(this)) {
showSetNetworkUI(this);
} else {
Toast.makeText(this, "网络可用...", 0).show();
}
super.onStart();
}
@Override
protected void onResume() {
Log.i("MainActivity", "onStart");
super.onResume();
}
/*
* 打开设置网络界面
*/
public void showSetNetworkUI(final Context context) {
// 提示对话框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("网络设置提示")
.setMessage("网络连接不可用,是否进行设置?")
.setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent intent = null;
// 判断手机系统的版本 即API大于10 就是3.0或以上版本
if (android.os.Build.VERSION.SDK_INT > 10) {
intent = new Intent(
android.provider.Settings.ACTION_WIFI_SETTINGS);
} else {
intent = new Intent();
ComponentName component = new ComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
context.startActivity(intent);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
步骤三.
在获得到json解析完之后在发message呈现adapter之前的时候 判断得到的entity是否为空 不为空的话往下走
new Thread(){ public void run() { NBANewsBiz biz=new NBANewsBiz(); String json=biz.getNBAresult(); NBAnewsJson parser=new NBAnewsJson(); NBAnews entity = parser.parser(json); if (entity!=null) { Message msg=Message.obtain(); msg.obj=entity; handler.sendMessage(msg); } }; }.start();
记得在 Manifest文件中加入以下权限
[html] view
plain copy
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
步骤4 对于选择的网络进行的一个判断是wifi还是mobile
private int NetworkState() {
ConnectivityManager conn=(ConnectivityManager) this.getSystemService(this.CONNECTIVITY_SERVICE);
NetworkInfo wifi = conn.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = conn.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable()) {
Toast.makeText(this, "wifi链接成功", Toast.LENGTH_SHORT).show();
return 1;
}else if(mobile.isAvailable()){
Toast.makeText(this, "您连接的是mobile网络", Toast.LENGTH_SHORT).show();
return 2;
}else{
return 0;
}
}
相关文章推荐
- 2016西电校赛网络赛 Problem F 方格填数
- 网络:NSURLSession 下载文件
- 2016西电校赛网络赛 Problem E 删除字符
- Android基于http的网络请求async-http框架
- 基于Windows的迭代回声服务器端/客户端(基于TCP的服务器端/客户端)
- 2016西电校赛网络赛 Problem D 抢人头
- 2016西电校赛网络赛 Problem C 寻找万神
- 2016西电校赛网络赛Problem B 猴子吃桃 II
- 2016西电校赛网络赛 Problem A z1+z2
- HTML5第7次课堂笔记(图片验证码的应用,xmlhttprequest对象的使用,跨域)
- 网络:NSURLSession
- HTTP笔记
- bzoj4538: [Hnoi2016]网络
- 解决 nginx https反向代理http协议 302重定向localtion到http问题
- linux 网络编程基础(四)read,write,connect, accept 超时封装
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- android开发网络请求
- Android开发请求网络方式
- [BZOJ4538]网络
- linux 网络编程基础(三)selsct函数应用