Android 判断是否有手机是否有网络

新建项目 GPRS

简单的布局

给 button 绑定点击事件,点击控件会产生两种可能,如果有网络就显示“有网络”,如果没有网络显示“没有网络”.

第一给button绑定点击事件代码如下:

新建一个类 :OnClickNetWerk.java

 1 package com.example.gprs;
 2 
 3 import android.app.Activity;
 4 import android.content.Context;
 5 import android.net.ConnectivityManager;
 6 import android.net.NetworkInfo;
 7 import android.view.View;
 8 import android.view.View.OnClickListener;
 9 import android.widget.TextView;
10 import android.widget.Toast;
11 
12 public class OnClickNetWerk implements OnClickListener{
13     private Context context ;
14     private TextView textView ;
15     private ConnectivityManager cm ;
16     public OnClickNetWerk(Context context){
17         this.context = context;
18     }
19     
20     @Override
21     public void onClick(View v) {
22         Activity act = (Activity) context;
23         textView = (TextView) act.findViewById(R.id.textView1);
24         
25         int color ; //存放颜色
26         String text ; //存放显示的内容
27         
28         NetworkInfo netIntfo = null;
29         try {
30             cm = (ConnectivityManager) act.getSystemService(act.CONNECTIVITY_SERVICE);
31             netIntfo =  cm.getActiveNetworkInfo();
32         } catch (Exception e) {
33             //异常处理 
34             Toast.makeText(act, "没有网络权限,请给予相关权限", Toast.LENGTH_LONG).show();
35         }
36         
37         if(netIntfo==null){
38             //如果没有网络 显示不正常
39             text = act.getResources().getString(R.string.netWerk_1);
40             color = act.getResources().getColor(R.color.palegreen);
41             
42         }else{
43             //如果没有网络 显示不正常
44             text = act.getResources().getString(R.string.netWerk_0);
45             color = act.getResources().getColor(R.color.beige);
46             
47         }
48         //设置文本
49         textView.setText(text);
50         //设置背景颜色
51         textView.setBackgroundColor(color);
52         
53         
54         
55     }
56 
57 }

 注:

  1.最好给如下代码加入异常处理,预防出现权限的报错,把整个程序终止了。

  
cm=(ConnectivityManager)act.getSystemService(act.CONNECTIVITY_SERVICE);
    netIntfo =  cm.getActiveNetworkInfo();

  2.给程序加入相关的网络权限(AndroidManifest.xml)

  

  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

  

第二:在MainActivity.java

  代码如下:

package com.example.gprs;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;


public class MainActivity extends Activity {
    private Button but ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        but =  (Button) this.findViewById(R.id.isGprs);
        but.setOnClickListener( new OnClickNetWerk(this));
        
    }
            
}
原文地址:https://www.cnblogs.com/zhen123/p/6085812.html