Android8.0 9.0 10.0获取wifi名字问题

一、添加权限

 

    <!--使用网络-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--网络状态-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--wifi状态权限-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--位置信息-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!--如果是安卓10.0,需要后台获取连接的wifi名称则添加进程获取位置信息权限 -->
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
    <!--android 10.0使用wifi api新添加的权限-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

二、申请权限

申请权限框架较多,本人使用的 RxPermissions

android8.0以上需要开启位置信息,如图

 

android10.0截图

android9.0以上需要申请定位权限

android10.0需要申请新添加的隐私权限ACCESS_FINE_LOCATION详情见android官方10.0重大隐私权变更,如果还需要后台获取或者使用wifi api则还需要申请后台使用定位权限ACCESS_BACKGROUND_LOCATION

三、申请权限代码示例

 

    /**
     * 判断是否获取到了定位权限,获取wifi信息需要
     */
    private fun rxPermissions() {
        //获取必要权限
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            RxPermissionsUtlis(
                this,
                RxPermissions(this),
                getString(R.string.permissions14),
                object : RxPermissionsUtlis.PermissionCallbacks {
                    override fun onPermissionsGranted() {
                        if (!LocationUtils.isGpsEnabled()) {
                            LogUtils.e(TAG, "没有开启GPS定位")
                            openGpsSettings()
                        } else {
                            //获取连接的wifi名称
                            getConnectWifiSsid()
                        }
                    }

                    override fun onPermissionsDenied() {
                        finish()
                    }

                },
                Manifest.permission.ACCESS_BACKGROUND_LOCATION,
                Manifest.permission.ACCESS_FINE_LOCATION,
                Manifest.permission.ACCESS_COARSE_LOCATION
            )

        } else {
            RxPermissionsUtlis(
                this,
                RxPermissions(this),
                getString(R.string.permissions1),
                object : RxPermissionsUtlis.PermissionCallbacks {
                    override fun onPermissionsGranted() {
                        //先判断Android系统,9.0以上除了需要定位权限还需要开启GPS才能获取wifi名字
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
                            if (!LocationUtils.isGpsEnabled()) {
                                LogUtils.e(TAG, "没有开启GPS定位")
                                openGpsSettings()
                            }
                        }
                    }

                    override fun onPermissionsDenied() {
                        finish()
                    }

                },
                Manifest.permission.ACCESS_COARSE_LOCATION
            )
        }


    }
  /**
     * 获取连接wifi的ssid
     *
     * @return
     */
    private fun getConnectWifiSsid(): String {
        val wifiManager =
            applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
        val wifiInfo = wifiManager.connectionInfo

        LogUtils.e(TAG, "wifiInfo==$wifiInfo")
        LogUtils.e(TAG, "SSID===${wifiInfo.ssid}")

        return wifiInfo.ssid

    }

    /**
     *  打开Gps设置界面
     */
    private fun openGpsSettings() {
        val intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
        startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
    }

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
以下是用Fortran语言编写的代码: (1) ``` program week_temperature implicit none integer :: i real :: temp(7), max_temp, avg_temp ! 循环输入一周日最高气温 do i = 1, 7 write(*,*) "请输入第", i, "天的最高气温:" read(*,*) temp(i) end do ! 判断其中最高气温 max_temp = temp(1) do i = 2, 7 if (temp(i) > max_temp) then max_temp = temp(i) end if end do ! 计算一周平均最高气温 avg_temp = sum(temp) / 7 ! 输出结果 write(*,*) "一周中最高气温为:", max_temp, "℃" write(*,*) "一周平均最高气温为:", avg_temp, "℃" end program week_temperature ``` (2) ``` program month_temperature implicit none integer :: i, max_index, min_index real :: temp(28), max_temp, min_temp, avg_temp character(len=10) :: date(28) ! 使用数组输入一月日最高气温 temp = [13.0, 4.0, 8.0, 10.0, 8.0, 8.0, 9.0, 7.0, 7.0, 6.0, 9.0, 10.0, 4.0, 7.0, 9.0, 10.0, 9.0, 13.0, 11.0, 14.0, 5.0, 6.0, 5.0, 10.0, 9.0, 10.0, 12.0, 13.0] ! 计算一月平均最高气温 avg_temp = sum(temp) / 28 ! 判断其中最高、最低气温 max_temp = temp(1) min_temp = temp(1) max_index = 1 min_index = 1 do i = 2, 28 if (temp(i) > max_temp) then max_temp = temp(i) max_index = i end if if (temp(i) < min_temp) then min_temp = temp(i) min_index = i end if end do ! 输出最高、最低气温值及其在该月中的天数(第几天)、日期 date = ["2023/02/01", "2023/02/02", "2023/02/03", "2023/02/04", "2023/02/05", "2023/02/06", "2023/02/07", "2023/02/08", "2023/02/09", "2023/02/10", "2023/02/11", "2023/02/12", "2023/02/13", "2023/02/14", "2023/02/15", "2023/02/16", "2023/02/17", "2023/02/18", "2023/02/19", "2023/02/20", "2023/02/21", "2023/02/22", "2023/02/23", "2023/02/24", "2023/02/25", "2023/02/26", "2023/02/27", "2023/02/28"] write(*,*) "一月中最高气温为:", max_temp, "℃,出现在第", max_index, "天,即", date(max_index) write(*,*) "一月中最低气温为:", min_temp, "℃,出现在第", min_index, "天,即", date(min_index) end program month_temperature ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值