首页 > 其他分享 >游戏软著渠道的用户协议和隐私协议方案(启动显示方案)

游戏软著渠道的用户协议和隐私协议方案(启动显示方案)

时间:2023-07-20 12:56:19浏览次数:22  
标签:协议 方案 new 软著 import android true public view

该方案为游戏启动时显示用户协议、隐私协议。

一般作为软著包上架的话使此方案。

方案描述:

Android启动的时候,首次启动时,先显示用户协议、点确定后再显示隐私协议,完成后再进入游戏。

进入游戏前,用户协议和隐私协议可以切换着点,进入游戏完成后,下次再启动游戏,则不会弹出协议确认界面。

1、AndroidManifest.xml的Application节点下增加如下activity。

    <activity android:name="com.mycaiyuan.shaiquwh.wxapi.MainActivity" android:theme="@style/UnityTransparentStatusBarTheme" android:exported="true" android:taskAffinity="com.mycaiyuan.shaiquwh" android:label="@string/app_name" android:screenOrientation="portrait" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density" android:hardwareAccelerated="true">

      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="android.notch_support" android:value="true" />
      <meta-data android:name="unityplayer.UnityActivity" android:theme="@style/UnityTransparentStatusBarTheme" android:value="true" />
    </activity>

2、创建MainActivity.java这个activity。

package com.gametest.game.wxapi;//wxapi之前的那段为包名

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.TextView;

import com.gametest.game.R;//包名和R包


public class MainActivity extends Activity {
    WebView webview;
    SharedPreferences shared;
    public boolean isYHXY = false;
    public boolean isYSZC = false;
    public static MainActivity mainActivity;
    public String url1 = "https://www.baidu.com";
    public String url2 = "https://www.baidu.com";

    private SharedPreferences.Editor editor;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        Log.d("xxxxxxx","xxxxxxx66666");
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT );//代码强制竖屏 //SCREEN_ORIENTATION_PORTRAIT

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        WindowManager.LayoutParams params = getWindow().getAttributes();
        params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_IMMERSIVE;
        getWindow().setAttributes(params);



        super.onCreate(savedInstanceState);

        shared= getSharedPreferences("is", MODE_PRIVATE);
        boolean hasAcceptPivacy=shared.getBoolean("hasAcceptPivacy", false);
        //如果已经同意过协议,直接进入游戏(一般第二次打开,就不需要再次弹出隐私协议了)
        if(hasAcceptPivacy){
            Intent intent1 =new Intent();
            intent1.setClass(MainActivity.this, WXEntryActivity.class);
            MainActivity.this.startActivity(intent1);
            finish();
        }
        else
        {

            setContentView(R.layout.activity_main2);
            webview = findViewById(R.id.web1);
            webview.loadUrl(url1);
            webview.setWebViewClient(new WebViewClient() {
                @Override

                public boolean shouldOverrideUrlLoading(WebView view, String url) {

                    view.loadUrl(url1);
                    return true;
                }

            });
            Button btn1 =findViewById(R.id.imgbtn_ysxy);
            TextView txt = findViewById(R.id.tvHand);
            findViewById(R.id.imgbtn_ysxy).setOnClickListener(new Button.OnClickListener()
            {
                public void onClick(View v)
                {

                    if (btn1.getText().toString().contains("隐私政策") == true)
                    {
                        btn1.setText("用户协议");
                        txt.setText("隐私政策");
                        webview.loadUrl(url2);
                        webview.setWebViewClient(new WebViewClient() {
                            @Override

                            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                                view.loadUrl(url2);
                                return true;
                            }

                        });

                    }
                    else if (btn1.getText().toString().contains("用户协议") == true)
                    {
                        btn1.setText("隐私政策");
                        txt.setText("用户协议");
                        webview.loadUrl(url1);
                        webview.setWebViewClient(new WebViewClient() {
                            @Override

                            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                                view.loadUrl(url1);
                                return true;
                            }

                        });

                    }
                }


            });



            //btn.setEnabled(false);

            //点击同意,进入游戏
            findViewById(R.id.imgbtn_start).setOnClickListener(new Button.OnClickListener()
            {
                public void onClick(View v)
                {
                    if (txt.getText().toString().contains("用户协议") == true)
                    {
                        isYHXY = true;
                    }
                    else if (txt.getText().toString().contains("隐私政策") == true)
                    {
                        isYSZC = true;
                    }

                    if(isYHXY == true && isYSZC == true)
                    {


                        Intent intent =new Intent();
                        editor = shared.edit();
                        //同意隐私协议,修改 已同意协议变量为true
                        editor.putBoolean("hasAcceptPivacy", true);
                        editor.commit();

                        intent.setClass(MainActivity.this, WXEntryActivity.class);
                        MainActivity.this.startActivity(intent);
                        finish();
                    }
                    else if (isYHXY == true && isYSZC == false)
                    {
                        btn1.setText("用户协议");
                        txt.setText("隐私政策");
                        webview.loadUrl(url2);
                        webview.setWebViewClient(new WebViewClient() {
                            @Override

                            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                                view.loadUrl(url2);
                                return true;
                            }

                        });
                        Button btn = findViewById(R.id.imgbtn_start);
                        btn.setEnabled(false);
                        btn.setText("同意");
                        Handler mHandler2 = new Handler(Looper.getMainLooper());
                        mHandler2.postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                btn.setText("同意");
                                btn.setEnabled(true);
                            }
                        }, 3000);
                    }
                    else if (isYHXY == false && isYSZC == true)
                    {
                        btn1.setText("隐私政策");
                        txt.setText("用户协议");
                        webview.loadUrl(url1);
                        webview.setWebViewClient(new WebViewClient() {
                            @Override

                            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                                view.loadUrl(url1);
                                return true;
                            }

                        });
                        Button btn = findViewById(R.id.imgbtn_start);
                        btn.setEnabled(false);
                        btn.setText("同意");

                        Handler mHandler2 = new Handler(Looper.getMainLooper());
                        mHandler2.postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                btn.setText("同意");
                                btn.setEnabled(true);
                            }
                        }, 3000);

                    }
                    else
                    {
                        webview.loadUrl(url1);
                        webview.setWebViewClient(new WebViewClient() {
                            @Override

                            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                                view.loadUrl(url1);
                                return true;
                            }

                        });
                    }

                }
            });
            //点击不同意,直接退出应用
            findViewById(R.id.imgbtn_end).setOnClickListener(new Button.OnClickListener()
            {
                public void onClick(View v)
                {
                    android.os.Process.killProcess(android.os.Process.myPid());
                    System.exit(0);
                }
            });


        }
    }


    @Override
    protected void onNewIntent(Intent intent) {
        // To support deep linking, we need to make sure that the client can get access to
        // the last sent intent. The clients access this through a JNI api that allows them
        // to get the intent set on launch. To update that after launch we have to manually
        // replace the intent with the one caught here.
        setIntent(intent);
        Log.d("xxxxxxx" , "555555");
    }
}

 

3、在res下的layout文件夹下创建activity_main2.xml这个layout。

用txt打开,内容改为如下:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <LinearLayout
            android:id="@+id/llBtns1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_alignParentTop="true"
            android:orientation="horizontal">
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_weight="1">

            <Button
                android:id="@+id/imgbtn_ysxy"
                android:layout_width="100dp"
                android:layout_height="40dp"
                android:text="隐私政策"
                android:textSize="16dp" />
        </LinearLayout>
        </LinearLayout>
        <TextView
            android:id="@+id/tvHand"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:textSize="20dp"
            android:gravity="center"
            android:text="用户协议"
            android:textColor="#000"/>

        <LinearLayout
            android:id="@+id/llBtns"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal">
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_weight="1">

                <Button
                    android:id="@+id/imgbtn_start"
                    android:layout_width="80dp"
                    android:layout_height="40dp"
                    android:text="同意"
                    android:textSize="16dp" />
            </LinearLayout>
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_weight="1">

                <Button
                    android:id="@+id/imgbtn_end"
                    android:layout_width="80dp"
                    android:layout_height="40dp"
                    android:text="不同意"
                    android:textSize="16dp" />
            </LinearLayout>
        </LinearLayout>

        <WebView
            android:id="@+id/web1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@id/llBtns"
            android:layout_below="@id/tvHand" />

    </RelativeLayout>


</FrameLayout>

4、这样就完成了启动协议页的创建。

其中MainActivity.java代码里的  WXEntryActivity.class  这个是你游戏的那个activity。

标签:协议,方案,new,软著,import,android,true,public,view
From: https://www.cnblogs.com/vsirWaiter/p/17568027.html

相关文章

  • mongodb 集群迁移方案
    MongoDB集群迁移方案简介在实际开发中,可能会遇到需要将MongoDB集群迁移到新的环境的情况,本文将介绍一种常见的MongoDB集群迁移方案。迁移流程以下是迁移MongoDB集群的一般步骤:步骤描述1创建新的目标环境2备份源集群数据3在目标环境中配置MongoDB集群4将......
  • 视频监控报价方案
     硬盘录像机海康16路8盘位数字录像机只12745.002745.0022寸监视器(含支架) 三星 台 1 1599.00 1599.00监控硬盘 WD6TB 块 4 1200.00 4800.00企业路由器 锐捷千兆双WAN口 台 1 1350.00 1350.00400万像素红外摄像头 海康网络摄像头 只 3 465.00 1395.00摄像头支架 ......
  • TCP和UDP协议的区别
    1、TCP是面向连接的,而UDP是无连接的协议。2、TCP对于传输有用的数据非常可靠,因为它需要确认发送的信息,并且能重新发送丢失的数据包;UDP是一种不可靠的协议,数据包丢失,它不会请求重新传输,目标计算机会收到损坏的数据3、TCP速度较慢,但更健壮,因为TCP在传输数据之前建立连接,并确保数据......
  • 安科瑞工厂电力监控解决方案
    1、概述  电力监控系统实现对变压器、柴油发电机、断路器以及其它重要设备进行监视、测量、记录、报警等功能,并与保护设备和远方控制中心及其他设备通信,实时掌握供电系统运行状况和可能存在的隐患,快速排除故障,提高工厂供电可靠性。2、参考标准GB50053-2013   《20KV及以下......
  • RTMP流媒体服务器LntonMedia(免费)流媒体服务器平台修改登录密码与开启接口鉴权的解决方
    LntonMedia支持一站式的上传、转码、直播、回放、嵌入、分享功能,具有多屏播放、自由组合、接口丰富等特点。平台可以为用户提供专业、稳定的直播推流、转码、分发和播放服务,全面满足超低延迟、超高画质、超大并发访问量的要求。1、如何修改密码为了提升平台数据安全性,LntonMedia等......
  • plc网络通信方案地址转换通讯处理器
    捷米特JM-ETH-NAT可以实现近似于NAT的跨网段地址转换的功能:即可将LAN1口所连接PLC的IP地址和端口号,映射到LAN2口任意IP地址和端口号;方便解决了现场设备无法修改IP地址和端口号的问题; 捷米特JM-ETH-NAT具备两路物理性接口,LAN1和LAN2口分别具备独立的局域网功能。其中LAN1口为......
  • 高频面试题 - 数据库优化方案
    一.考题再现最近很多小伙伴在跳槽面试,遇到了各种奇奇怪怪的问题。比如健哥的一个学生,在面试时被面试官问到如下问题:“我们做web开发都离不开http协议,那你了解http协议吗?”这时大家一般都是回答了解。然后面试官会接着对这个问题展开三连击,“Http协议是长连接还是短连接?......
  • PPT|基于工业互联网智能工厂总体建设方案-服装类P39
    ......
  • AI自动创作的技术性方案之档案八防环境温湿度监控系统方案
    档案馆八防标准及自动化恒温恒湿消毒净化系统技术性方案档案室自动化恒温恒湿消毒净化系统是一种先进的档案管理解决方案,旨在为档案资料提供的保存环境。该系统能够实现对档案室的自动化控制,确保档案资料在恒定的温度、湿度和清洁度下保存,延长档案资料的使用寿命。下面将详细介绍......
  • 完善1x1卷积方案
    完善1x1卷积方案1x1的卷积和3x3的卷积有什么区别?1x1卷积是一种特殊的卷积操作,它只对输入数据的每个像素点进行一次乘法和累加,而不需要构造3x3的矩阵。这样可以减少计算量和内存消耗,同时也可以改变输入数据的通道数,实现特征融合或降维。3x3卷积则是一种常见的卷积操作,它需要对......