当前位置: 首页 > 知识库问答 >
问题:

Android 11中的GetNetworkType

冷英光
2023-03-14

在这里发布的更改之后,getNetworkType方法从Android R开始就不推荐使用了。

java.lang.SecurityException: getDataNetworkTypeForSubscriber: uid 10225 does not have android.permission.READ_PHONE_STATE.
  at android.os.Parcel.createExceptionOrNull(Parcel.java:2285)
  at android.os.Parcel.createException(Parcel.java:2269)
  at android.os.Parcel.readException(Parcel.java:2252)
  at android.os.Parcel.readException(Parcel.java:2194)
  at com.android.internal.telephony.ITelephony$Stub$Proxy.getNetworkTypeForSubscriber(ITelephony.java:7565)
  at android.telephony.TelephonyManager.getNetworkType(TelephonyManager.java:2964)
  at android.telephony.TelephonyManager.getNetworkType(TelephonyManager.java:2928)
  at com.ironsource.environment.ConnectivityService.getCellularNetworkType(ConnectivityService.java:197)
  at com.ironsource.sdk.service.DeviceData.updateWithConnectionInfo(DeviceData.java:98)
  at com.ironsource.sdk.service.DeviceData.fetchMutableData(DeviceData.java:54)
  at com.ironsource.sdk.service.TokenService.collectDataFromDevice(TokenService.java:120)
  at com.ironsource.sdk.service.TokenService.getRawToken(TokenService.java:177)
  at com.ironsource.sdk.service.TokenService.getToken(TokenService.java:166)
  at com.ironsource.sdk.IronSourceNetwork.getToken(IronSourceNetwork.java:183)

此异常表明我需要请求Android.permission.read_phone_state权限。

我想知道是否有一种方法可以用任何其他不需要此权限的API获得网络类型(因为此权限的级别很危险,我不想向用户索要)。

共有1个答案

钱志义
2023-03-14

所以我的朋友,我和你有同样的麻烦,但到目前为止,我来了一个临时修复,我使用CompilesDKVersion29,而不是30,以及TargetSDKVersion29和我的BuildToolsVersion28.0.3,我的应用程序加载良好。

由于我的这个问题是由于第三方库的原因而来的,所以直到修复的错误我不能单独修复它,但我认为用这个暂时的解决方案现在还是挺好的。

 类似资料:
  • 我想保留一个文件,即使在卸载了我的应用程序在Android11。多亏了Android10和11关于存储的更新,我不能再这样做了。另外,我不想使用数据备份或远程服务器,它必须离线。有什么建议吗?

  • 在Android11中引入了范围存储。根据文档,保存非媒体文件(如PDF)应使用存储访问框架。因此,在使用存储访问框架时,用户需要通过系统文件选择器选择位置来保存非媒体文件(PDF)。但如果你在Android11上使用whatsapp应用程序,并尝试保存PDF文件,它不会要求用户选择位置。默认情况下会将pdf文件保存到外部文档目录。我想在我的应用程序中复制相同的行为。有人能带我到这里来吗。

  • 我正在尝试创建许多文件,作为用户的一个功能。例如,我可能会编写一个应用程序,为他们过去几周听的每首歌创建一个文件(例如,一个带有歌词的文本文件)。我不能让用户为我生成的每个文件选择目录和文件名,这将花费他们数小时的时间。用户应该可以从其他应用程序访问这些文档。 在Android11中,存储访问框架似乎没有什么用处。我注意到最初有两个有趣的选项: 创建一个新文件(该文件创建启动用户与之交互的活动,以

  • 我想在Android11上读一个OTG USB,我可以在Android9上列出这样的文件: 问题是为什么我在Android 11上可以读取外存,却不能读取OTG USB?我想要能够在Android11上读取USB OTG。

  • 通过使用android 11(SDK API 30)设备下面的一些方法 但在Android11中运行良好。无法使用如下所示的方法使其im 函数调用 uri是我从拾取器的响应中获得的视频路径。 copyFile的函数调用 错误:new ;path:/storage/emulated/0/download/stop/mp4_20210128225711.mp4 system.err:java.io.f

  • 在运行Android11+的设备上使用应用程序的开发者必须使用范围存储,以给用户更好的访问控制他们的设备存储。要在5月5日之后在Android 11或更新版本上发布应用程序,您必须: 更新您的应用程序以使用更隐私友好的最佳实践,如存储访问框架或媒体存储API更新您的应用程序以声明清单文件中的所有文件访问(MANAGE_EXTERNAL_STORACTA)权限,并从5开始在播放控制台中完成所有文件访

  • 我的应用程序在10版以下运行良好,但Android11及更高版本不支持外部存储。我的选取器没有选取任何文档文件。但在清单中授予manageexternalstorage权限后,googleplaystore没有批准我的应用程序。如果您知道所有文件访问权限的替代解决方案,请提供帮助。

  • 最近我更新了我的智能手机到Android11,我注意到我的一个应用程序在创建外部存储目录时崩溃了。我读过Android11文档,这里是。很奇怪,因为当我打开Android/Data dir时,有很多应用程序文件夹,所以有可能这样做,或者有应用程序在更新之前创建的文件夹?