访问隐藏方法时出现问题。安卓、颤动、地理定位器 [英] Problem with Accessing hidden method. Android, Flutter, Geolocator

查看:0
本文介绍了访问隐藏方法时出现问题。安卓、颤动、地理定位器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Udemy上上这个扑翼/飞镖课程,在一个新项目的开始,我被困在试图使用Geolocater Package。该项目的初始GitHub项目位于here

本课程的第一步是导入geolocator包,将其添加到pubspec.yml,然后在Screens/LoadingScreen.dart文件中的_LoadingScreenState中添加一个函数:

void getLocation() async {
  Position position = await Geolocator()
      .getCurrentPosition(desiredAccuracy: LocationAccuracy.low);
  print(position);
}

,最后只需将getLocation();添加到同一页面上的onPressed。在本教程中,这一功能运行良好,因为他们使用的是我相信的API 26和地理定位器的3.0.1版本。但是,我正在使用API 29或30(两者都不起作用),并收到以下错误:

W/ppbrewery.clim(25370):访问隐藏方法 Landroid/content/Context;->;getFeatureId()Ljava/lang/String;(灰名单, 反射,允许)

我对这个问题做了一些研究,它之所以这样做,似乎是因为我使用的是API 30。但是,我不知道如何处理此问题,也不知道如何让它打印我的位置。

有关文档,请参阅:

https://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces

底部写着:如何启用对非SDK接口的访问?

但是ADB外壳设置PUT GLOBAL HIDDED_API_POLICY 1命令对我没有任何作用。这可能是因为我使用的是API30,但我就是不知道。它似乎对API 29也没有任何作用。

此外,上面的解决方案似乎只是为了在开发设备/仿真器上修复它,除非我误解了它。如何修复模拟器和将来的实际部署?

推荐答案

试试这个。

Geolocator geolocator = Geolocator()..forceAndroidLocationManager = true;
Position position = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.low);

您可以通过单击仿真器末尾的三个点来打开此设置

别忘了像这样在模拟器上设置位置并设置位置。

这篇关于访问隐藏方法时出现问题。安卓、颤动、地理定位器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆