gpt4 book ai didi

android - 如何在我的 android 应用程序中以编程方式打开 GPS?

转载 作者:行者123 更新时间:2023-11-30 02:07:35 24 4
gpt4 key购买 nike

如果我们使用此代码,我们会看到一条消息:正在搜索 GPS。然而,GPS 符号只是显示; GPS 实际上不起作用:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", true);
this.sendBroadcast(intent);
}

为什么它不起作用?以及如何使其正常工作?

最佳答案

现在不允许了。如果你看一下this bug report , 这个 hack 在 Android 4.4 中被颠覆了。它仍然适用于较旧的操作系统版本,但你现在不应该在任何地方使用它。引用该报告:

This doesn't work ... however, it can cause stuff to react as if the GPS status changed -- for example, the HTC One S will show the GPS icon in the status bar, even though the GPS is still disabled.

这就解释了为什么您可以看到 GPS 图标,即使它实际上并未打开。现在,至于为什么你不能那样做......

即使没有第三方应用实际使用 GPS 功能,Android 的 GPS 技术也会定期向 Google 发送位置数据。 在许多西方国家,这被视为对隐私的严重侵犯。这就是为什么 Google 强制要求在使用 GPS 功能之前征得用户的同意。每当用户打开 GPS 时,都会看到以下对话框:

GPS user permission

因此不再可能以编程方式更改 GPS 设置,因为它需要用户的许可。程序员可以做的是通过调用将用户引导至 GPS 设置

startActivity(context, new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));

让用户做出选择。

有趣的是,如果您尝试在新操作系统版本上发送 GPS_ENABLED_CHANGE 广播,您会得到一个

java.lang.SecurityException: Permission Denial: 
not allowed to send broadcast android.location.GPS_ENABLED_CHANGE

错误。如您所见,它是一个带有权限拒绝消息的SecurityException

关于android - 如何在我的 android 应用程序中以编程方式打开 GPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30459897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com