Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果android中的系统设置以编程方式更改,如何触发?_Android_Gps - Fatal编程技术网

如果android中的系统设置以编程方式更改,如何触发?

如果android中的系统设置以编程方式更改,如何触发?,android,gps,Android,Gps,我的应用程序需要根据内部计算的某个时间间隔查找当前位置。每次都会有所不同。在当前位置检查期间,如果Internet和GPS都关闭,则应向用户显示警报,并将用户带到设置页面。一旦用户打开GPS,它应该再次调用检查当前位置方法。 但是,我们有没有办法触发用户在进入设置页面后实际打开了GPS 你有,哪些应该做你想做的。我最近不得不做完全相同的任务(当用户打开他们的位置设置时,用一些代码响应),我让它工作得很好(尽管与上面其他用户回答的方式不同)——尽管他们的方法也可以工作。。但大致根据我的方法,在您的

我的应用程序需要根据内部计算的某个时间间隔查找当前位置。每次都会有所不同。在当前位置检查期间,如果Internet和GPS都关闭,则应向用户显示警报,并将用户带到设置页面。一旦用户打开GPS,它应该再次调用检查当前位置方法。
但是,我们有没有办法触发用户在进入设置页面后实际打开了GPS

你有,哪些应该做你想做的。

我最近不得不做完全相同的任务(当用户打开他们的位置设置时,用一些代码响应),我让它工作得很好(尽管与上面其他用户回答的方式不同)——尽管他们的方法也可以工作。。但大致根据我的方法,在您的情况下,我只需在Java代码中使用
Intent
动态注册
BroadcastListener
。请记住,您需要通过
Manifest.xml
文件注册相应的
权限,例如:



并且(假设您已经以这样或那样的方式注册了
BroadcastReceiver
),将在您的接收器中放置以下内容:



希望这对你有帮助
祝你幸福快乐

// START OF onReceive METHOD FOR RECEIVER
@Override
public void onReceive(Context context, Intent intent) {

    boolean isGpsEnabled;
    boolean isNetworkEnabled;

    LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);

    isGpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);



    // PRIMARY RECEIVER RESPONSE (FOR "PROVIDERS_CHANGED" INTENT-FILTER)
    if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {

        Toast.makeText(context, "GPS Enabled: " + isGpsEnabled + " NetworkLocation Enabled: " + isNetworkEnabled, Toast.LENGTH_LONG).show();

        // START ANOTHER ACTIVITY WHEN GPS IS ENABLED IF YOU WANT
        if (isGpsEnabled) {

            Intent startNextActivity = new Intent(context, YourNextActivity.class);

            // THIS IS NEEDED IF CALLING ACTIVITY FROM OUTSIDE ACTIVITY
            startNextActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            context.startActivity(startNextActivity);

        }

    }

}