如您所知,根据Google Developer政策,如果我们的应用程序的核心功能不依赖于SMS,那么我们应该删除RECEIVE_SMS android权限并尝试查找其他替代方案.
但我的问题是我没有在清单中使用RECEIVE_SMS或在运行时询问.不过,谷歌警告我使用RECEIVE_SMS权限.
虽然在Play商店如果我检查此应用程序所需的权限,它显示RECEIVE_SMS权限.
你可以看到我的应用程序的一些屏幕截图,如果我在任何地方错误地使用它,我搜索了这个权限.
但我无法找到它.
清楚这一点:
正如您所看到的,我不是要求该权限,也不是在清单或运行时.
我正在使用Firebase Phone身份验证和PayUMoney Payment集成.这两个可能导致问题吗?或者他们在内部要求获得此许可.
我不知道这个许可来自哪里.
如果有人能帮我解决这个问题,那将是一个很大的帮助.
有人面临同样的问题吗?
我知道用于读取、写入和发送 SMS的包flutter_sms。
但正如我所看到的,它也会向用户 SEND_SMS 请求权限,这也是不需要的,如果您的应用不仅仅依赖于此功能,谷歌也不允许请求此权限。
任何人都可以帮助我通过颤振从短信中读取 OTP 吗?
或者可以帮助为 IOS 和 Android 编写本机功能并将其与 flutter 集成。
我正在使用地理定位器:'^3.0.1'permission_handler:'^3.0.0'
现在我想获取用户的当前位置并在用户打开地图时将其显示在地图上。
所以我的代码是:
Future<void> requestPermission() async {
PermissionHandler()
.checkPermissionStatus(PermissionGroup.location)
.then((PermissionStatus permissionStatus) async {
print("Checking Permission " + permissionStatus.toString());
if (permissionStatus == PermissionStatus.granted) {
_getCurrentLocation();
} else {
print("Asking Permission " + permissionStatus.toString());
final List<PermissionGroup> permissions = <PermissionGroup>[
PermissionGroup.locationWhenInUse
];
final Map<PermissionGroup, PermissionStatus> permissionRequestResult =
await PermissionHandler().requestPermissions(permissions);
if (PermissionStatus.granted ==
permissionRequestResult[PermissionGroup.locationWhenInUse]) {
print("Permission Granted " + permissionStatus.toString());
_getCurrentLocation();
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
和权限在 android 的清单和 IOS 的 info.list 中定义。
现在的问题是当我运行这个函数并调用requestPermission函数时,它会显示要求权限的弹出窗口,
当我的allow the permission应用程序因错误而崩溃时:
java.lang.RuntimeException: Failure delivering result …