Netstate 网络状态

来源:互联网 发布:电脑收银软件排行 编辑:程序博客网 时间:2024/05/21 03:27

清单文件:

<!--读取网络状态的权限--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>



MainActivity

public class  MainActivity   extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int netType = NetStateUtil.getNetType(MainActivity.this);
        if (netType != -1) {
            initdata();
        }else {
            Toast.makeText(this, "请检查网络", Toast.LENGTH_SHORT).show();
        }
    }

    private void initdata() {
        Toast.makeText(this, "我有网络哈哈哈哈", Toast.LENGTH_SHORT).show();
    }
}


NetStateUtil 

class NetStateUtil {


    /**
     * 获取手机网络状态
     * -1 :无网络
     *  0 :  蜂窝网络;
     * 1  : wifi网络
     * @return
     * @param context 上下文对象
     */
    public static int getNetType(Context context) {
        int mState = -1;// 代表无网络
        //获取android系统提供的服务, 转换成链接管理类,这个类专门处理链接相关的东西
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //NetworkInfo封装了网络链接的信息
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        if(activeNetworkInfo ==null){
            return mState;
        }
        int type = activeNetworkInfo.getType();


        if (type == ConnectivityManager.TYPE_WIFI) {//代表现在是wifi网络
            mState = 1;
        }else if(type == ConnectivityManager.TYPE_MOBILE ){
            mState = 0;
        }
        return mState;
    }
}


ExampleInstrumentedTest


/**
 * Instrumentation test, which will execute on an Android device.
 *
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() throws Exception {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getTargetContext();


        assertEquals("com.wzq.netstatedemo", appContext.getPackageName());
    }
}