android 判断是否联网

遇到一个需求,想看看设备是否联网,但又没有浏览器,写个程序测一下

1.builder

html/xml 复制代码
   implementation 'com.github.bumptech.glide:glide:4.8.0'

2.网络权限

typescript 复制代码
 <!-- 获取网络状态 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

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

3.主界面

java 复制代码
package com.example.iosdialogdemo;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.bumptech.glide.Glide;

public class TestActivity extends AppCompatActivity {

    private boolean isConnect = false;
    private boolean isConnect2 = false;
    private ImageView iv_ph;
    private String url = "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg";

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_test);
        isNetPingUsable();
        isNetworkAvailable(TestActivity.this);

        iv_ph = findViewById(R.id.iv_ph);

        Glide.with(getApplicationContext()).load(url).into(iv_ph);
    }

    public boolean isNetPingUsable() {
        Runtime runtime = Runtime.getRuntime();
        try {
            Process process = runtime.exec("ping -c 3 www.baidu.com");
            int ret = process.waitFor();
            if (ret == 0) {
                isConnect = true;
            } else {
                isConnect = false;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return isConnect;
    }


    public boolean isNetworkAvailable(Context context) {
        ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo info = connectivity.getActiveNetworkInfo();
            if (info != null && info.isConnected()) {       // 当前网络是连接的
                isConnect2 = info.getState() == NetworkInfo.State.CONNECTED;      // 当前所连接的网络可用
                Log.e("TAG", "" + isConnect2);
            }
        }
        return isConnect2;
    }


}
相关推荐
此去正年少11 分钟前
编写adb脚本工具对Android设备上的闪退问题进行监控分析
android·adb·logcat·ndk·日志监控
落羽凉笙31 分钟前
Python基础(4)| 玩转循环结构:for、while与嵌套循环全解析(附源码)
android·开发语言·python
十幺卜入1 小时前
Unity3d C# 基于安卓真机调试日志抓取拓展包(Android Logcat)
android·c#·unity 安卓调试·unity 安卓模拟·unity排查问题
frontend_frank1 小时前
脱离 Electron autoUpdater:uni-app跨端更新:Windows+Android统一实现方案
android·前端·javascript·electron·uni-app
薛晓刚2 小时前
MySQL的replace使用分析
android·adb
DengDongQi2 小时前
Jetpack Compose 滚轮选择器
android
stevenzqzq2 小时前
Android Studio Logcat 基础认知
android·ide·android studio·日志
代码不停2 小时前
MySQL事务
android·数据库·mysql
朝花不迟暮2 小时前
使用Android Studio生成apk,卡在Running Gradle task ‘assembleDebug...解决方法
android·ide·android studio
yngsqq2 小时前
使用VS(.NET MAUI)开发第一个安卓APP
android·.net