ConnectivityManager类 判断网络是否可用进行设置
来源:互联网 发布:国语版港剧软件 编辑:程序博客网 时间:2024/05/18 02:35
一. MainActivity.java
package androidthree_1509d.base;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.AsyncTask;import android.provider.Settings;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import com.google.gson.Gson;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URL;import java.util.List;import javax.net.ssl.HttpsURLConnection;public class MainActivity extends AppCompatActivity { private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listview); //获取网路信息 getDataFromNet(); } public void getDataFromNet() { //当进入页面时先判断网络状态是否连接可用...不可用,设置 if (isNetConnectioned()){ //获取网络数据 getData(); }else { //当未连接时弹出对话框提醒 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("警告!"); builder.setMessage("网络未连接,是否去设置?"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { //设置网络 Settings.ACTION_WIFI_SETTINGS Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS); startActivity(intent); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); builder.show(); } } /** * 判断网络是否可用的方法 * 异常:SecurityException: ConnectivityService: * Neither user 10033 nor current process has android.permission.ACCESS_NETWORK_STATE. * 如果需要获取网络的状态,需要添加权限android.permission.ACCESS_NETWORK_STATE */ public boolean isNetConnectioned() { //1. 获取网络连接对象 ConnectivityManager service = (ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE); //2. 获取网络连接的信息 NetworkInfo info = service.getActiveNetworkInfo(); //3. 信息不为空时,就代表网络可用 if (info != null){ return info.isAvailable(); } return false; } //获取网络数据 public void getData() { AsyncTask<String,String,String> task = new AsyncTask<String, String, String>() { @Override protected String doInBackground(String... strings) { try { //连接路径 String path = "https://suggest.taobao.com/sug?code=utf-8&q=%E6%98%BE%E7%A4%BA%E5%99%A8"; //连接网络 URL url = new URL(path); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); //响应数据 int responseCode = connection.getResponseCode(); if (responseCode==200){ InputStream inputStream = connection.getInputStream(); String json = streamToString(inputStream,"utf-8"); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String json) { ResultBean resultBean = new Gson().fromJson(json, ResultBean.class); List<List<String>> list = resultBean.getResult(); //设置适配器 MyAdapter adapter = new MyAdapter(MainActivity.this, list); listView.setAdapter(adapter); } }; task.execute(); } private String streamToString(InputStream inputStream, String gbk) { try { //转换流 InputStreamReader streamReader = new InputStreamReader(inputStream, gbk); //缓冲流 BufferedReader reader = new BufferedReader(streamReader); //缓冲区 StringBuilder builder = new StringBuilder(); //读取数据 String s = null; while ((s=reader.readLine())!=null){ builder.append(s); } return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; }}
二. 自定义适配器类 MyAdapter.java
package androidthree_1509d.base;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.List;public class MyAdapter extends BaseAdapter{ private Context context; private List<List<String>> list; public MyAdapter(Context context, List<List<String>> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder = null; if (view == null){ view = View.inflate(context, R.layout.item_layout, null); holder = new ViewHolder(); //查找控件 holder.name = view.findViewById(R.id.name); view.setTag(holder); }else{ holder = (ViewHolder) view.getTag(); } //获取数据重新赋值 holder.name.setText(list.get(i).get(0)+" "+list.get(i).get(1)); return view; } static class ViewHolder{ TextView name; }}
三. 自定义请求网络数据的Bean类
四. 在AndroidMainifest.xml中添加
1. 网络请求权限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
2. 判断网络状态的权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
阅读全文
0 0
- ConnectivityManager类 判断网络是否可用进行设置
- ConnectivityManager 判断网络是否可用
- ConnectivityManager判断是否有网络
- ConnectivityManager判断是否有网络
- 【Android】使用ConnectivityManager与NetworkInfo实现判断当前网络环境是否可用
- 使用ConnectivityManager与NetworkInfo实现判断当前网络环境是否可用
- Android】使用ConnectivityManager与NetworkInfo实现判断当前网络环境是否可用
- 【Android】使用ConnectivityManager与NetworkInfo实现判断当前网络环境是否可用
- Android wiki:04.ConnectivityManager检查是否有可用网络
- 判断网络是否可用
- 判断网络是否可用
- 判断网络是否可用
- 判断网络是否可用
- 判断网络是否可用
- 判断网络是否可用
- 判断网络是否可用
- 判断网络是否可用
- 判断网络是否可用
- Java对多路复用I/O技术的支持
- Path.Combine 合并路径
- django开发环境部署四(四)
- intellij引入jar包怎么加载jar包的源代码
- 简单的Ext文件上传,文件下载和文件删除
- ConnectivityManager类 判断网络是否可用进行设置
- tesseract4.0alpha、leptonica-1.74.4编译和安装
- 关于前端的一些禁止操作
- tabview中有输入框监听键盘事件
- sql语句中where 1=1 的用法
- vive手柄按键获取
- 计算图片中的物体的实际尺寸的一种方法
- LCD显示移植(LVDS接口)
- 十四,I/O