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提示版本更新的实现
  2. Android(安卓)出现 OutOfMemoryError 的一种解决方法
  3. android内部外部存储卡路径的获取
  4. Android屏幕元素层次结构
  5. Android改变文件的权限
  6. Android根据文件路径使用File类获取文件相关信息
  7. Android本地数据存储之Sharedpreference
  8. android keytool 不是内部命令或外部命令在 (win7下不能用的解决
  9. Android中视频播放以及解码

随机推荐

  1. Android 本地文件上传到服务器
  2. 初试Android基于Vuforia开发AR
  3. OpenSignal给出的Android现状分析及技巧
  4. android 自定义软键盘
  5. android菜单和对话框
  6. android 下用ant编译脚本执行批量渠道打
  7. NDK学习笔记
  8. android软键盘的搜索按钮
  9. android 日历控件
  10. Android:禁止滚动的解决方法