[Android]上架商店时用户隐私协议要求
这是vivo退审意见:
1.获取位置权限要主动点击才能获取不能自动获取。
2.隐私政策开发者名称“重庆XX有限公司”
应用存在功能性问题,请修改后重新提交APK包以便检测,具体表现为:
1.首次进入应用提前获取位置权限--不通过;
2.首页点击会员、预约,提示功能暂未开放--不通过;
3.隐私政策自检报告内容不完整或为用户协议,请至少明示:
① 开发者名称(注:后台上传隐私政策链接中公司名称需与开发者名称保持一致;)
隐私政策应明确标识发布、生效或更新日期(开头或者结尾的位置)
隐私政策要加日期
https://www.angemo.com/privacyMechanic
隐私正常直接抄这个内容
华为驳回意见:
解决:
在启动页后先添加一个"服务协议和隐私政策"弹窗,在同意后再进行初始后。
private fun showPrivacyPolicyDialog(context: Context) {val dialogBuilder = AlertDialog.Builder(context)val message = "请你务必审慎阅读、充分理解“用户服务协议”和“用户隐私协议”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。你可阅读《用户服务协议》和《用户隐私协议》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。"val spannableString = SpannableString(message)val spanAgreement = "《用户服务协议》"val spanPrivacyPolicy = "《用户隐私协议》"val agreementClickableSpan = object : ClickableSpan() {override fun onClick(view: View) {navigateToAgreementDetails()}}val privacyPolicyClickableSpan = object : ClickableSpan() {override fun onClick(view: View) {navigateToPrivacyPolicyDetails()}}val agreementStartIndex = message.indexOf(spanAgreement)val privacyPolicyStartIndex = message.indexOf(spanPrivacyPolicy)spannableString.setSpan(agreementClickableSpan, agreementStartIndex, agreementStartIndex + spanAgreement.length, 0)spannableString.setSpan(privacyPolicyClickableSpan, privacyPolicyStartIndex, privacyPolicyStartIndex + spanPrivacyPolicy.length, 0)val textView = TextView(context)textView.text = spannableStringtextView.movementMethod = LinkMovementMethod.getInstance()// 设置左右外边距val paddingInPx = 15 * context.resources.displayMetrics.densitytextView.setPadding(paddingInPx.toInt(), paddingInPx.toInt(), paddingInPx.toInt(), 0)dialogBuilder.setView(textView)dialogBuilder.setCancelable(false).setNegativeButton("暂不同意") { _, _ ->me.shp.edit().putBoolean(KEY_AGREE_PROTOCOL, false).apply()finishAffinity() // 退出应用}.setPositiveButton("同意") { _, _ ->me.shp.edit().putBoolean(KEY_AGREE_PROTOCOL, true).apply()// 在协程作用域中执行GlobalScope.launch(Dispatchers.Main) {delay(100)enterNextView()}}val alert = dialogBuilder.create()alert.setTitle("服务协议和隐私政策")alert.show()
}