android: 得到系统信息:系统版本号、屏幕、网络等

一,代码:

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("当前使用其他网络");
                    }
                }
            }
        });
    }

}

 

二,测试效果:

 

posted @ 2025-05-01 09:31  刘宏缔的架构森林  阅读(26)  评论(0)    收藏  举报