我想知道用户是否为该位置选择了“仅在使用时”或“始终”。
https://pub.dev/packages/location_permissions
我从包中尝试了这段代码:
ServiceStatus serviceStatus =
await LocationPermissions().checkServiceStatus();
print(serviceStatus);
Run Code Online (Sandbox Code Playgroud)
但它打印:
ServiceStatus.enabled
Run Code Online (Sandbox Code Playgroud)
有没有可能(也许用另一个包)知道这一点?
提前致谢!
permission_handler可以做到这一点。
enum PermissionGroup {
...
/// Android: Fine and Coarse Location
/// iOS: CoreLocation - Always
locationAlways,
/// Android: Fine and Coarse Location
/// iOS: CoreLocation - WhenInUse
locationWhenInUse
}
Run Code Online (Sandbox Code Playgroud)
请求权限:
final ph = PermissionHandler();
final requested = await ph.requestPermissions([
PermissionGroup.locationAlways,
PermissionGroup.locationWhenInUse
]);
final alwaysGranted = requested[PermissionGroup.locationAlways] == PermissionStatus.granted;
final whenInUseGranted = requested[PermissionGroup.locationWhenInUse] == PermissionStatus.granted;
Run Code Online (Sandbox Code Playgroud)
将这些权限添加到 AndroidManifest.xml<manifest>标签内:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test_project">
<!-- add these -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
...
Run Code Online (Sandbox Code Playgroud)
这些<dict>是 Info.plist 的标签:
<!-- Permission options for the `location` group -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>Need location when in use</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Always and when in use!</string>
<key>NSLocationUsageDescription</key>
<string>Older devices need location.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Can I haz location always?</string>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14638 次 |
| 最近记录: |