Android获取WIFI 的ssid 方法适配Android9.0

本文首次发表于:
蜗牛魔方-Android获取WIFI SSID方法,适配9.0
demo 地址:JavaExtensionUtilsForAndroid

废话不多说了直接上代码

首先在Androidmanifast 中添加权限

  
## 获取SSID 的方法如下/**     * 获取SSID     * @param activity 上下文     * @return  WIFI 的SSID     */    public String getWIFISSID(Activity activity) {         String ssid="unknown id";        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.O||Build.VERSION.SDK_INT==Build.VERSION_CODES.P) {            WifiManager mWifiManager = (WifiManager) activity.getApplicationContext().getSystemService(Context.WIFI_SERVICE);            assert mWifiManager != null;            WifiInfo info = mWifiManager.getConnectionInfo();            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {                return info.getSSID();            } else {                return info.getSSID().replace("\"", "");            }        } else if (Build.VERSION.SDK_INT==Build.VERSION_CODES.O_MR1){            ConnectivityManager connManager = (ConnectivityManager) activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);            assert connManager != null;            NetworkInfo networkInfo = connManager.getActiveNetworkInfo();            if (networkInfo.isConnected()) {                if (networkInfo.getExtraInfo()!=null){                    return networkInfo.getExtraInfo().replace("\"","");                }            }        }        return ssid;    }

MainActivity方法。布局文件太简单了 。不贴代码了

public class MainActivity extends AppCompatActivity {    private PermissionHelper permissionHelper;    TextView mTvSSID;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);         mTvSSID = findViewById(R.id.tvSSID);        Toolbar toolbar = findViewById(R.id.toolbar);        setSupportActionBar(toolbar);        permissionHelper = new PermissionHelper(this);        getWifiSSid();    }    private void getWifiSSid() {        permissionHelper.check(Manifest.permission.ACCESS_FINE_LOCATION).onSuccess(this::onSuccess).onDenied(this::onDenied).onNeverAskAgain(this::onNeverAskAgain).run();    }    private void onSuccess() {        mTvSSID.setText(DeviceUtil.INSTANCE.getWIFISSID(this));    }    private void onDenied() {        ToastUtil.INSTANCE.show(this, "权限被拒绝,9.0系统无法获取SSID");    }    private void onNeverAskAgain() {        ToastUtil.INSTANCE.show(this, "权限被拒绝,9.0系统无法获取SSID,下次不会在询问了");    }    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        permissionHelper.onRequestPermissionsResult(requestCode, permissions, grantResults);    }}

Android8.1获取方法

需要在Androidmanifast.xml文件中添加如下权限

    
    ConnectivityManager connManager = (ConnectivityManager) activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);            assert connManager != null;            NetworkInfo networkInfo = connManager.getActiveNetworkInfo();            if (networkInfo.isConnected()) {                if (networkInfo.getExtraInfo()!=null){                    return networkInfo.getExtraInfo().replace("\"","");                }            }

9.0 以后需要申请运行时权限

在Androidmanifast.xml文件中添加

 

权限申请框架

在model 中的gradle中加入以下依赖。

  implementation 'ru.alexbykov:nopermission:1.1.2'

更多相关文章

  1. Android 出现 OutOfMemoryError 的一种解决方法
  2. Android改变文件的权限
  3. android keytool 不是内部命令或外部命令在 (win7下不能用的解决
  4. 如何查看无法导出的android数据库文件?
  5. Arcgis android 10.2安装方法
  6. Android studio 打不开官方虚拟机 100%成功解决方法
  7. 输入法软键盘搜索执行两次的解决方法
  8. 关于Android Studio里的Gradle文件
  9. Android 6.0 运行时权限检查分析

随机推荐

  1. element ui表格实现下拉筛选功能
  2. OpenHarmony-RK3568开发板操作梳理
  3. 实例演示属性与方法重载、 实例演示命名
  4. Vue 搭建Vuex环境详解
  5. Vue自定义指令详解
  6. VUE的数据代理与事件详解
  7. PHP:1. 文件包含的本质与作用域,实例演示;
  8. 遭亚马逊大规模封店,跨境电商企业如何实现
  9. 数据库的CURD操作,PDO的本质与原理,预处
  10. 实例演示数据库的CURD操作、PDO的本质与