一,代码:
package com.example.okdemo1.activity;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.example.okdemo1.R;
public class ToolsActivity extends AppCompatActivity {
public final static int REQUEST_READ_NETWORK_STATE_CODE = 102;
private boolean isTimerFinished = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_tools);
//从Android 6.0(API级别23)开始,对于在运行时请求敏感权限,需要在代码中动态请求用户授权
//requestNetworkPermission();
//给按钮增加点击事件
Button myButton = findViewById(R.id.button);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 获取手机当前的Android版本号(字符串表示)
String androidVersion = Build.VERSION.RELEASE;
// 获取手机当前的API级别(即Android版本号)
int apiLevel = Build.VERSION.SDK_INT;
System.out.println("系统版本号:"+androidVersion);
System.out.println("Api版本号:"+apiLevel);
String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
System.out.println("制造商:"+manufacturer);
System.out.println("型号:"+model);
String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
System.out.println("androidId:"+androidId);
String[] supportedABIs = Build.SUPPORTED_ABIS;
for (String abi : supportedABIs) {
System.out.println("cpu架构:"+abi);
}
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels;
int height = displayMetrics.heightPixels;
float density = displayMetrics.density;
System.out.println("屏幕宽度:"+width);
System.out.println("屏幕高度:"+height);
System.out.println("屏幕密度:"+density);
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
Network activeNetwork = connectivityManager.getActiveNetwork();
if (activeNetwork != null) {
NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
//boolean hasCapability = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
boolean hasCapability = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
if (hasCapability) {
System.out.println("当前已经连接到网络");
}
boolean isWifi = capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI);;
boolean isCellular = capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR);
if (isWifi) {
// 当前网络为Wi-Fi
System.out.println("当前使用wifi");
} else if (isCellular) {
// 当前网络为移动数据(3G/4G/5G)
System.out.println("当前使用移动网络");
} else {
// 当前网络为其他类型,如以太网等
System.out.println("当前使用其他网络");
}
}
}
});
}
}
二,测试效果:
![]()