如何通过单击按钮打开和关闭GPS?

时间:2019-07-12 07:00:28

标签: android

我将为ios之类的android系统提供辅助功能,因此我想为此添加gps功能。 我想在单击图像时单击图像视图来打开和关闭gps。它转到设置,从那里可以打开和关闭手机的位置,但是我希望在我打开时不进行设置单击该位置,然后单击其他以关闭该位置。

final ImageView locationOn = view.findViewById(R.id.location);
final ImageView locationOff = view.findViewById(R.id.locationOff); 

locationManager = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE);
        GpsStatus = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        if(GpsStatus) {
            locationOn.setVisibility(View.INVISIBLE);
            locationOff.setVisibility(View.VISIBLE);
        }
        else{
            locationOn.setVisibility(View.VISIBLE);
            locationOff.setVisibility(View.INVISIBLE);
        }
        locationOn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                locationOn.setVisibility(View.INVISIBLE);
                locationOff.setVisibility(View.VISIBLE);
            }
        });
        locationOff.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                locationOn.setVisibility(View.VISIBLE);
                locationOff.setVisibility(View.INVISIBLE);
            }
        });

当我单击它时。它转到设置,从那里可以打开和关闭手机的位置,但是当我单击打开位置并单击其他以关闭位置时,我希望不进行设置。< / p>

1 个答案:

答案 0 :(得分:0)

不,这不是不可能的,也是不合适的。您不能只在没有用户权限的情况下管理用户电话。

从Play商店:

“当您尝试对设备进行本地化时(仅在Android <2.3.3上),Cerberus会自动启用GPS,并且可以保护其免受未经授权的卸载-应用程序配置中的更多信息。”

您可以执行以下操作:

startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));

如果API版本不是最新版本,请使用Intents

启用GPS

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

禁用GPS

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