package com.unity3d.player;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;
//
//这段代码用于在用户第一次启动应用时显示隐私政策界面,用户可以选择同意或拒绝隐私政策
//如果用户同意隐私政策则进入Unity Activity,否则退出应用
//请将AndroidManifest中的默认启动Activity设置为PrivacyActivity
//
public class PrivacyActivity extends Activity implements DialogInterface.OnClickListener {
final String privacyContent =
"感谢您对本游戏的支持。为了更好的保护您的个人信息,在使用本游戏前,请您充分阅读并理解我们的"
+""
+"《用户协议》"
+"以及"
+" "
+"《隐私政策》
"
+"1.保护用户隐私是本游戏的一项基本政策,本游戏不会泄露您的个人信息;
"
+"2.我们会根据您使用的具体功能需要,收集必要的用户信息(如申请设备信息,存储等相关权限);
"
+"3.在您同意App隐私政策后,我们将进行集成SDK的初始化工作,会收集您的android_id、Mac地址、IMEI和应用安装列表,以保障App正常数据统计和安全风控;
"
+"4.您可以通过我们官方网页重新查看该协议 ;
"
+"5.您可以阅读完整版的隐私保护政策了解我们申请使用相关权限的情况,以及对您个人隐私的保护措施。";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
HideActionStatusBar();
HideBottomStatusBar();
if(GetPrivacyAccept()){
//如果用户已经同意隐私政策则直接进入Unity Activity
EnterUnityActivity();
return;
}
ShowPrivacyDialog();
}
private void HideActionStatusBar(){
//隐藏状态栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
if(getActionBar() != null){
getActionBar().hide();
}
}
private void HideBottomStatusBar(){
if(Build.VERSION.SDK_INT>11&&Build.VERSION.SDK_INT<19) {
View v = this.getWindow().getDecorView();
v.setSystemUiVisibility(View.GONE);
}
else if(Build.VERSION.SDK_INT>=19) {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
}
}
private void ShowPrivacyDialog(){
WebView webView = new WebView(this);
webView.loadData(privacyContent, "text/html", "utf-8");
AlertDialog.Builder privacyDialog = new AlertDialog.Builder(this);
privacyDialog.setCancelable(false);
privacyDialog.setTitle("隐私政策");
privacyDialog.setView(webView);
privacyDialog.setPositiveButton("同意", this);
privacyDialog.setNegativeButton("拒绝", this);
privacyDialog.create().show();
}
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case AlertDialog.BUTTON_POSITIVE://点击同意按钮
SetPrivacyAccept(true);//设置已经同意隐私政策
EnterUnityActivity();//进入Unity Activity
break;
case AlertDialog.BUTTON_NEGATIVE://点击拒绝按钮
finish();
break;
default:
break;
}
}
private void EnterUnityActivity() {
Intent unityAct = new Intent();
unityAct.setClassName(this, "com.unity3d.player.UnityPlayerActivity");
this.startActivity(unityAct);
}
private void SetPrivacyAccept(boolean isAccept) {
//设置已经同意隐私政策
//这里可以使用SharedPreferences保存用户的选择
SharedPreferences.Editor prefs = this.getSharedPreferences("PlayerPrefs", MODE_PRIVATE).edit();
prefs.putBoolean("PrivacyAccept", isAccept);
prefs.apply();
}
private boolean GetPrivacyAccept() {
//获取用户是否同意隐私政策
SharedPreferences prefs = this.getSharedPreferences("PlayerPrefs", MODE_PRIVATE);
return prefs.getBoolean("PrivacyAccept", false);
}
}