android提示用户启用位置服务意图错误

时间:2017-09-07 00:44:45

标签: android google-maps android-fragments android-intent android-gps

我有一个应用需要使用位置服务来实现其功能之一。因此,当用户点击按钮时,我希望我的应用程序检查设备是否启用了位置服务,以及是否未提示用户通过AlertDialog启用它。当用户单击“启用位置服务”按钮时,我希望应用程序将用户带到用户可以启用它的设置页面。

  

我的问题是当用户点击“启用位置服务”时   按钮,而不是打开设置页面,应用程序直接   进入主要活动。

     

注意:这一切都发生在父活动是我的第二个活动的片段中。以下是我的应用的布局: MainActivity (登录页面)=> 第二项活动(家长活动)=> 片段(必须进行此项检查)。

这是我在片段的onCreateView方法中的代码:

            currentLoc.setOnClickListener(new View.OnClickListener() {
                DataActivity dataActivity = (DataActivity) getActivity();
                Context context = getActivity().getApplicationContext();
                @Override
                public void onClick(View view) {
                    if (!dataActivity.isLocationServiceEnabled()){
                        final AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
                        alertDialog.setTitle("Alert");
                        alertDialog.setMessage("To use this feature, you must first enable location services");

                        alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Enable Location Services", new DialogInterface.OnClickListener() {

                            public void onClick(DialogInterface dialog, int id) {
                                Intent gpsOptionsIntent = new Intent(
                                        android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                                startActivity(gpsOptionsIntent);
                            }});

                        alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {

                            public void onClick(DialogInterface dialog, int id) {
                                dialog.dismiss();
                            }});
                        alertDialog.show();
                    }
                    else {
                        AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
                        alertDialog.setTitle("Alert");
                        alertDialog.setMessage("GPS Enabled...");
                        alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int which) {
                                        dialog.dismiss();
                                    }
                                });
                        alertDialog.show();
                    }
                }
            });
  

注意:currentLoc是在内部创建的imageView   fragment_layout文件

更多信息:

  • compileSdkVersion 26
  • buildToolsVersion“25.0.3”
  • minSdkVersion 14
  • targetSdkVersion 26
  • 编译'com.android.support:appcompat-v7:26 +'
  • 编译'com.android.support:support-v4:26 +'

我尝试过无数种使用意图的变种,对于这个项目,他们都将我带回登录页面(MainActivity)。当我创建一个新项目并使用相同的代码时,它可以工作......

0 个答案:

没有答案