Pur*_*tto 1 xml android flutter
我一直在尝试各种方法来调用我的位置数据,从 IP 位置 API 到 Flutter 插件,但都无法获得其中任何一个的准确位置数据。通过所有我已经解决了Geolocator。但我一直得到
I/flutter ( 5206): null
I/flutter ( 5206): GeolocationStatus.unknown
Run Code Online (Sandbox Code Playgroud)
在我的 Init 状态下调用它时,如下所示:
void initState() {
super.initState();
fetchData();
}
fetchData() async {
setState(() {
isLoading = true; //Data is loading
});
GeolocationStatus geolocationStatus =
await Geolocator().checkGeolocationPermissionStatus();
position = await Geolocator()
.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
if (position != null) {
lastPosition = await Geolocator()
.getLastKnownPosition(desiredAccuracy: LocationAccuracy.high);
}
...
if (position != null)
print(position);
else
print(lastPosition);
print(geolocationStatus);
setState(() {
isLoading = false; //Data has loaded
});
}
Run Code Online (Sandbox Code Playgroud)
经过一番研究,我决定使用permission_handler来尝试检查权限。我声明PermissionStatus _status在我的 fetchData() 函数中添加了以下几行:
PermissionHandler()
.checkPermissionStatus(PermissionGroup.location);
Run Code Online (Sandbox Code Playgroud)
而我得到No permissions found in manifest for: 3
我的清单具有的权限,以最好的我的理解。清单文件:https : //gist.github.com/Purukitto/640d1637c05bdb1b69cc4309947c45d5
据我了解,向清单添加权限应该至少向应用程序添加权限选项,但是在构建和安装应用程序后,我的应用程序存在“无权限”(附截图)。
可能是什么问题呢。我试图提及所有相关的事情。任何见解都会非常有帮助。
这个问题在 Flutter 包permission_handler的自述文件中链接,作为设置AndroidManifest.xml询问权限的示例。
如果您在设备要求用户授予权限时遇到问题,这可能是您的罪魁祸首。
详细说明 rollcake 的答案:
1. 如果您还不知道需要什么权限,请转到Android 开发人员页面查看列表和语法。
2. 在您的项目中,打开:android/app/src/main/AndroidManifest.xml
3. 插入您的权限,如下例所示:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.your.package">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name="io.flutter.app.FlutterApplication"
...<and so on>...
Run Code Online (Sandbox Code Playgroud)
旁注:AndroidManifest.xml您的项目中有不同的文件(...src/debug、...src/profile 和...src/main)。将权限添加到上述main版本应该可以工作,但如果您注意到不一致的行为,请确保将所有权限放在同一个 AndroidManifest 文件中。
| 归档时间: |
|
| 查看次数: |
5392 次 |
| 最近记录: |