美文网首页
说说获取googleplay推荐的一些坑

说说获取googleplay推荐的一些坑

作者: xinzhijianshu | 来源:发表于2017-06-27 17:35 被阅读0次

1.图标

必选按照图标模版制作,模版的链接如下http://goo.gl/14DrRi,把一张大图标放上去,对好位置可以自动生成对应尺寸的所有图标

2.返回按钮

游戏中必须按google要求添加一些和返回按钮相关的逻辑

3.权限

google对权限处理的要求比较严格,尽量少用权限,尽量不要在APP启动时申请权限,由于Android6.0之后启用了动态权限,权限的尽量在用的时候再申请,如果用户拒绝了正在申请的权限,还要弹出提示框来告诉用户为什么要申请这个权限,而且不能直接跳转到设置界面,直到用户点了不再显示之后才能跳转到设置界面要求用户开启权限,具体逻辑还是直接上代码:

public voidRequest(){

booleansuccess =true;

if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.M) {

// Here, thisActivity is the current activity

if(ContextCompat.checkSelfPermission(this,permissions[0]) != PackageManager.PERMISSION_GRANTED) {

success =false;

// Should we show an explanation?

if(ActivityCompat.shouldShowRequestPermissionRationale(this,permissions[0])) {

// Show an expanation to the user *asynchronously* -- don't block

// this thread waiting for the user's response! After the user

// sees the explanation, try again to request the permission.

showDialogTipUserRequestPermission();

}else{

// No explanation needed, we can request the permission.

startRequestPermission();

// MY_PERMISSIONS_REQUEST_READ_CONTACTS is an

// app-defined int constant. The callback method gets the

// result of the request.

}

}

}

if(success){

RequestSuccess();

}

}

// 开始提交请求权限

private voidstartRequestPermission() {

ActivityCompat.requestPermissions(this,permissions,PERMISSIONS_WRITE_EXTERNAL_STORAGE_CODE);

}

// 重新请求

public voidReRequest()

{

if(ActivityCompat.shouldShowRequestPermissionRationale(this,permissions[0])) {

showDialogTipUserRequestPermission();

}

else{

// 提示用户去应用设置界面手动开启权限

showDialogTipUserGoToAppSettting();

}

}

// 提示用户该请求权限的弹出框

private voidshowDialogTipUserRequestPermission() {

newAlertDialog.Builder(this)

.setTitle(permission_title)

.setMessage(permission_explain)

.setPositiveButton(permission_open, newDialogInterface.OnClickListener() {

@Override

public voidonClick(DialogInterface dialog, intwhich) {

startRequestPermission();

}

}).show();

//                .setNegativeButton(permission_cancel, new DialogInterface.OnClickListener() {

//                    @Override

//                    public void onClick(DialogInterface dialog, int which) {

//                        showDialogTipUserGoToAppSettting();

//                    }

//                }).setCancelable(false).show();

}

// 用户权限 申请 的回调方法

@Override

public voidonRequestPermissionsResult(intrequestCode,@NonNullString[] permissions,@NonNullint[] grantResults) {

super.onRequestPermissionsResult(requestCode,permissions,grantResults);

if(requestCode ==PERMISSIONS_WRITE_EXTERNAL_STORAGE_CODE) {

if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.M) {

if(grantResults[0] != PackageManager.PERMISSION_GRANTED) {

ReRequest();

}else{

RequestSuccess();

}

}

}

}

// 提示用户去应用设置界面手动开启权限

private voidshowDialogTipUserGoToAppSettting() {

dialog=newAlertDialog.Builder(this)

.setTitle(permission_title)

.setMessage(permission_explain)

.setPositiveButton(permission_open, newDialogInterface.OnClickListener() {

@Override

public voidonClick(DialogInterface dialog, intwhich) {

// 跳转到应用设置界面

goToAppSetting();

}

})

.setNegativeButton(permission_cancel, newDialogInterface.OnClickListener() {

@Override

public voidonClick(DialogInterface dialog, intwhich) {

finish();

}

}).setCancelable(false).show();

}

// 跳转到当前应用的设置界面

private voidgoToAppSetting() {

Intent intent =newIntent();

intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);

Uri uri = Uri.fromParts("package",getPackageName(), null);

intent.setData(uri);

startActivityForResult(intent,PERMISSIONS_WRITE_EXTERNAL_STORAGE_ACTIVITY_CODE);

}

@Override

protected voidonActivityResult(intrequestCode, intresultCode,Intent data) {

super.onActivityResult(requestCode,resultCode,data);

if(requestCode ==PERMISSIONS_WRITE_EXTERNAL_STORAGE_ACTIVITY_CODE) {

if(android.os.Build.VERSION.SDK_INT>= Build.VERSION_CODES.M) {

// 检查该权限是否已经获取

inti = ContextCompat.checkSelfPermission(this,permissions[0]);

// 权限是否已经 授权 GRANTED---授权  DINIED---拒绝

if(i != PackageManager.PERMISSION_GRANTED) {

ReRequest();

}else{

if(dialog!=null&&dialog.isShowing()) {

dialog.dismiss();

}

RequestSuccess();

}

}

}

}

// 获取权限成功

protected voidRequestSuccess(){

//Toast.makeText(this, "权限获取成功", Toast.LENGTH_SHORT).show();

}

4.其他需求

根据google邮件要求修改即可

相关文章

网友评论

      本文标题:说说获取googleplay推荐的一些坑

      本文链接:https://www.haomeiwen.com/subject/atpecxtx.html