首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AlertDialog未在MapsActivity中显示

AlertDialog未在MapsActivity中显示
EN

Stack Overflow用户
提问于 2019-03-27 10:48:11
回答 2查看 157关注 0票数 0

我有一个谷歌地图活动在我的安卓应用程序,它有一个AlertDialog,调用全球定位系统设置时,全球定位系统被禁用,但该对话框没有显示。

然后我得到了一个没有标记的Google地图活动,因为Dialog没有要求我激活GPS。

代码语言:javascript
代码运行次数:0
运行
复制
private void openSettingsDialog() {

    AlertDialog.Builder builder = new AlertDialog.Builder(MapsActivity.this);
    builder.setTitle("Permissões requeridas");
    builder.setMessage("Esta app precisa de permissões de GPS. Dê essas permissões nas definições.");
    builder.setPositiveButton("Definições", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
            Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
            Uri uri = Uri.fromParts("package", getPackageName(), null);
            intent.setData(uri);
            startActivityForResult(intent, 101);
        }
    });
    builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
        }
    });
    builder.show();

}

这里是我调用openSettingsDialog()的地方

代码语言:javascript
代码运行次数:0
运行
复制
private void requestMultiplePermissions() {
    Dexter.withActivity(this)
            .withPermissions(
                    Manifest.permission.ACCESS_FINE_LOCATION,
                    Manifest.permission.ACCESS_COARSE_LOCATION)
            .withListener(new MultiplePermissionsListener() {
                @Override
                public void onPermissionsChecked(MultiplePermissionsReport report) {
                    // check if all permissions are granted
                    if (report.areAllPermissionsGranted()) {
                        Toast.makeText(getApplicationContext(), "Todas as permissões aceites!", Toast.LENGTH_SHORT).show();
                    }

                    // check for permanent denial of any permission
                    if (report.isAnyPermissionPermanentlyDenied()) {
                        // show alert dialog navigating to Settings
                        openSettingsDialog();
                    }
                }

                @Override
                public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {
                    token.continuePermissionRequest();
                }
            }).
            withErrorListener(new PermissionRequestErrorListener() {
                @Override
                public void onError(DexterError error) {
                    Toast.makeText(getApplicationContext(), "Algum erro ocorreu! ", Toast.LENGTH_SHORT).show();
                }
            })
            .onSameThread()
            .check();
}

OnCreate()

代码语言:javascript
代码运行次数:0
运行
复制
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        //code for getting current location
        requestMultiplePermissions();

        tvLocation = (TextView) findViewById((R.id.tv));

        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();


        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            String gpslocation = extras.getString("GPSLocation");
            String[] latLng = gpslocation.split(",");
            double latitude = Double.parseDouble(latLng[0]);
            double longitude = Double.parseDouble(latLng[1]);
            LatLocation = new LatLng(latitude, longitude);
        }
    }

用于完整MapsActivity的MapsActivity链接

EN

回答 2

Stack Overflow用户

发布于 2019-03-27 11:29:59

在openSettingDialogMethod()

删除

代码语言:javascript
代码运行次数:0
运行
复制
builder.show();

并添加这一行代码

代码语言:javascript
代码运行次数:0
运行
复制
AlertDialog alertDialog = builder.create();
alertDialog.show();
票数 0
EN

Stack Overflow用户

发布于 2019-03-27 13:54:39

好吧,我修好了。显然,我想要的不是那个对话框,而是开放GPS设置对话框,我现在让它在我的应用程序中工作。抱歉,我是个笨蛋,我是安卓工作室的新成员。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55375363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档