PrivacyActivity.java 4.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.unity3d.player;
  2. import android.app.Activity;
  3. import android.app.AlertDialog;
  4. import android.content.DialogInterface;
  5. import android.content.Intent;
  6. import android.content.SharedPreferences;
  7. import android.content.pm.ActivityInfo;
  8. import android.content.pm.PackageManager;
  9. import android.os.Bundle;
  10. import android.webkit.WebResourceError;
  11. import android.webkit.WebResourceRequest;
  12. import android.webkit.WebView;
  13. import android.webkit.WebViewClient;
  14. public class PrivacyActivity extends Activity implements DialogInterface.OnClickListener {
  15. boolean useLocalHtml = true;
  16. String privacyUrl = "你的隐私政策地址";
  17. final String htmlStr = "欢迎使用本游戏,在使用本游戏前,请您充分阅读并理解 <a href=\"https://note.youdao.com/s/QlsrqI9i\">" +
  18. "《Unity隐私政策》</a>和<a href=\"https://developer.taptap.com/docs/sdk/start/agreement/\">《TapTap隐私政策》</a>各条;\n" +
  19. "1.保护用户隐私是本游戏的一项基本政策,本游戏不会泄露您的个人信息;\n\n" +
  20. "2.我们会根据您使用的具体功能需要,收集必要的用户信息(如申请设备信息,存储等相关权限);\n\n" +
  21. "3.在您同意App隐私政策后,我们将进行集成SDK的初始化工作,会收集您的android_id、Mac地址、IMEI和应用安装列表,以保障App正常数据统计和安全风控;\n\n" +
  22. "4.您可以阅读完整版的隐私保护政策了解我们申请使用相关权限的情况,以及对您个人隐私的保护措施;\n\n" +
  23. "5.为了保障游戏安全稳定运行并实现特定功能,会接入第三方开发的软件工具开发包,我们会对游戏接入的涉及个人信息收集的SDK进行安全监测,以保护您的个人信息安全:\n\n"+
  24. "5.1 SDK名称:Unity 3D\n"+
  25. "5.1.1 SDK使用目的:框架\n"+
  26. "5.1.2 SDK收集的信息:Android ID、设备传感器信息\n";;
  27. @Override
  28. protected void onCreate(Bundle savedInstanceState) {
  29. super.onCreate(savedInstanceState);
  30. ActivityInfo actInfo = null;
  31. try {
  32. //获取AndroidManifest.xml配置的元数据
  33. actInfo = this.getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
  34. useLocalHtml = actInfo.metaData.getBoolean("useLocalHtml");
  35. privacyUrl = actInfo.metaData.getString("privacyUrl");
  36. } catch (PackageManager.NameNotFoundException e) {
  37. e.printStackTrace();
  38. }
  39. //如果已经同意过隐私协议则直接进入Unity Activity
  40. if (GetPrivacyAccept()){
  41. EnterUnityActivity();
  42. return;
  43. }
  44. ShowPrivacyDialog();//弹出隐私协议对话框
  45. }
  46. @Override
  47. public void onClick(DialogInterface dialogInterface, int i) {
  48. switch (i){
  49. case AlertDialog.BUTTON_POSITIVE://点击同意按钮
  50. SetPrivacyAccept(true);
  51. EnterUnityActivity();//启动Unity Activity
  52. break;
  53. case AlertDialog.BUTTON_NEGATIVE://点击拒绝按钮,直接退出App
  54. finish();
  55. break;
  56. }
  57. }
  58. private void ShowPrivacyDialog(){
  59. WebView webView = new WebView(this);
  60. webView.loadDataWithBaseURL(null, htmlStr, "text/html", "UTF-8", null);
  61. AlertDialog.Builder privacyDialog = new AlertDialog.Builder(this);
  62. privacyDialog.setCancelable(false);
  63. privacyDialog.setView(webView);
  64. privacyDialog.setTitle("用户协议及隐私协议");
  65. privacyDialog.setNegativeButton("退出",this);
  66. privacyDialog.setPositiveButton("同意",this);
  67. privacyDialog.create().show();
  68. }
  69. //启动Unity Activity
  70. private void EnterUnityActivity(){
  71. Intent unityAct = new Intent();
  72. unityAct.setClassName(this, "com.unity3d.player.UnityPlayerActivity");
  73. this.startActivity(unityAct);
  74. }
  75. //保存同意隐私协议状态
  76. private void SetPrivacyAccept(boolean accepted){
  77. SharedPreferences.Editor prefs = this.getSharedPreferences("PlayerPrefs", MODE_PRIVATE).edit();
  78. prefs.putBoolean("PrivacyAccepted", accepted);
  79. prefs.apply();
  80. }
  81. private boolean GetPrivacyAccept(){
  82. SharedPreferences prefs = this.getSharedPreferences("PlayerPrefs", MODE_PRIVATE);
  83. return prefs.getBoolean("PrivacyAccepted", false);
  84. }
  85. }