5.3(小组冲刺第八天)

计步器完成编写最后代码
@Override
protected void onStart() {
super.onStart();
}
@Override
public void onDestroy() { //app被关闭之前,service先解除绑定
super.onDestroy();
if (isBind) {
this.unbindService(serviceConnection);
}

}
// 用户权限申请的回调方法
@Override
public void onRequestPermissionsResult( int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (requestCode == 321) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
                //提示用户手动开启权限
                showDialogTipUserGoToAppSettting("健康运动权限", "健康运动权限不可用");
            }
        }
    }
}
// 提示用户去应用设置界面手动开启权限
private void showDialogTipUserGoToAppSettting(String title, String message) {
    dialog = new AlertDialog.Builder(this)
            .setTitle(title)
            .setMessage(message)
            .setPositiveButton("立即开启", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // 跳转到应用设置界面
                    Intent intent = new Intent();
                    intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                    Uri uri = Uri.fromParts("package", getPackageName(), null);
                    intent.setData(uri);
                    startActivityForResult(intent, 123);
                }
            })
            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick( DialogInterface dialog, int which) {
                    Toast.makeText(getApplicationContext(),"没有获得权限,应用无法运行!", Toast.LENGTH_SHORT).show();
                    finish();
                }
            }).setCancelable(false).show();
}

//手动设置权限后回调,检查有没有权限
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 123) {
        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            // 检查该权限是否已经获取
            int get = ContextCompat.checkSelfPermission(this, permissions[0]);
            // 权限是否已经 授权 GRANTED---授权  DINIED---拒绝
            if (get != PackageManager.PERMISSION_GRANTED) {
                // 提示用户应该去应用设置界面手动开启权限
                Toast.makeText(getApplicationContext(),"没有获得权限,应用无法运行!", Toast.LENGTH_SHORT).show();
                finish();
            } else {
                dialog.dismiss();
                Toast.makeText(getApplicationContext(),"权限授予成功!", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(JibuActivity.this, BindService.class);
                isBind =  bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
                startService(intent);
            }
        }
    }
}

}

posted @ 2024-06-10 22:25  孤儿组  阅读(14)  评论(0)    收藏  举报