ソースを参照

douyou安卓配置

hexiaojie 1 年間 前
コミット
f57a97e4ad

+ 28 - 24
GameClient/Assets/Plugins/Android/AndroidManifest.xml

@@ -1,33 +1,37 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.unity3d.player"
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.gfg.douyou"
     xmlns:tools="http://schemas.android.com/tools"
-	android:installLocation="preferExternal">
-    <!--bugly配置权限start-->
-    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
-    <uses-permission android:name="android.permission.READ_LOGS" />
-    <!--bugly配置权限end-->
-	<!-- 权限组:STORAGE == 读取存储相关的权限申请 -->
-	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    android:installLocation="auto" >
+
     <application
+        android:name="com.sdk.douyou.DouyouApplication"
         android:allowBackup="true"
+		android:usesCleartextTraffic="true"
 		android:icon="@drawable/ic_launcher"
-		android:label="万世镜local">
-		<activity android:name="com.unity3d.player.UnityPlayerActivity"
+		android:label="万世镜">
+
+	<activity
+            android:name="com.easy.bridge.DouYouMainActivity"
             android:configChanges="mnc|keyboardHidden|screenSize|orientation|keyboard"
             android:screenOrientation="portrait"
-            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
-			<intent-filter>
-				<action android:name="android.intent.action.MAIN" />
-				<category android:name="android.intent.category.LAUNCHER" />
-			</intent-filter>
-		</activity>
+            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <meta-data android:name="android.permission.READ_LOGS" 
+            android:value="true" />
+        <meta-data android:name="android.permission.SYSTEM_ALERT_WINDOW" android:value="true" />
+        <meta-data android:name="android.permission.SYSTEM_OVERLAY_WINDOW" android:value="true" />
+        <meta-data android:name="android.permission.BLUETOOTH" android:value="true"/>
+        <meta-data android:name="android.permission.QUERY_ALL_PACKAGES" android:value="true"/>
+        <meta-data
+            android:name="unityplayer.ForwardNativeEventsToDalvik"
+            android:value="true" />
+        <meta-data
+            android:name="unityplayer.UnityActivity"
+            android:value="true" />
     </application>
-
 </manifest>

+ 249 - 0
GameClient/Assets/Plugins/com/easy/bridge/DouYouMainActivity.java

@@ -0,0 +1,249 @@
+package com.easy.bridge;
+
+import android.os.Bundle;
+
+import android.content.Intent;
+import android.content.res.Configuration;
+
+import com.sdk.douyou.DouYou;
+import com.sdk.douyou.listen.ActiveGameInterface;
+import com.sdk.douyou.listen.EnterGameInterface;
+import com.sdk.douyou.listen.SwitchAccountInterface;
+import com.sdk.douyou.adapter.DouYouSDKListenerAdapter;
+import com.sdk.douyou.listen.DouYouSDKListener;
+import com.sdk.douyou.bean.OrderInfoBean;
+import com.sdk.douyou.bean.RoleInfoBean;
+import com.sdk.douyou.util.LogUtil;
+import com.tencent.bugly.crashreport.CrashReport;
+import com.unity3d.player.UnityPlayer;
+import com.unity3d.player.UnityPlayerActivity;
+
+public class DouYouMainActivity extends UnityPlayerActivity
+{
+    private int uid;
+
+    private Bundle _savedInstanceState;
+
+    @Override protected void onCreate(Bundle savedInstanceState)
+    {
+        _savedInstanceState = savedInstanceState;
+        super.onCreate(savedInstanceState);
+
+        CrashReport.initCrashReport(getApplicationContext(), "766c5bdb0f", false);
+    }
+
+    //初始化douYou Sdk
+    public void initDouYou(String adId) {
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "ReceiveMessage", "SDK 实例化开始");
+        DouYou.getInstance().reportActive(this, adId);
+        DouYou.getInstance().setActivesuccessCallBack(new ActiveGameInterface() {
+            @Override
+            public void Activesuccess() {
+                UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "InitSuccess", "SDK 实例化成功");
+            }
+        });
+
+        DouYou.getInstance().init(this, adId, true, new EnterGameInterface() {
+            @Override
+            public void enter(int resUid, String token) {
+                uid = resUid;
+                // 登录成功后的处理逻辑,可以将 uid 和 token 发送给Unity
+                DouYou.getInstance().showFloatBall(DouYouMainActivity.this);
+                UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "LoginSuccess", resUid + "|gfg|" + token);
+            }
+        }, new SwitchAccountInterface() {
+            @Override
+            public void home() {
+                // 切换账号或退出登录后的处理逻辑,可以通知Unity返回游戏登录界面
+                UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "OutLoginSuccess",  "退出登录成功!");
+            }
+        });
+
+        DouYou.getInstance().onCreate(this, _savedInstanceState);
+
+        //监听支付回调
+        DouYou.getInstance().setSDKListener(new DouYouSDKListenerAdapter(){
+            @Override
+            public void onPayResult(int code, OrderInfoBean params) {
+                // params.getOrderID() 研发ID
+                // params.getXxx() 是DouYou的订单ID
+                switch (code) {
+                    case DouYouSDKListener.CODE_PAY_FAIL: //支付失败
+                        LogUtil.debug("pay fail : " + params.toString());
+                        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "PayFail", code + "|gfg|" + params.toString());
+                        break;
+                    case DouYouSDKListener.CODE_PAY_SUCCESS:  //支付成功
+                        LogUtil.debug("pay success : " + params.toString());
+                        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "PaySuccess", code + "|gfg|" + params.toString());
+                        break;
+                }
+            }
+        });
+    }
+
+    //显示登录界面
+    public void extShowLogin(){
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "ReceiveMessage", "显示登录界面");
+        DouYou.getInstance().showLogin(DouYouMainActivity.this);
+    }
+
+    //角色登录数据上报
+    public void extReportRoleLogin(String id, String level, String nickname, String sid, String serverName){
+        RoleInfoBean roleInfo = new RoleInfoBean();
+        roleInfo.setType(RoleInfoBean.TYPE_ENTER_GAME);
+        roleInfo.setSid(sid);
+        roleInfo.setServerName(serverName);
+        roleInfo.setId(id);
+        roleInfo.setNickname(nickname);
+        roleInfo.setLevel(level);
+       
+        DouYou.getInstance().reportRoleLogin(DouYouMainActivity.this, roleInfo);
+    }
+
+    //角色数据上报
+    public void extReportRole(int logType, String id, String level, String nickname, String sid, String serverName){
+        RoleInfoBean roleInfo = new RoleInfoBean();
+        roleInfo.setType(logType);
+        roleInfo.setSid(sid);
+        roleInfo.setServerName(serverName);
+        roleInfo.setId(id);
+        roleInfo.setNickname(nickname);
+        roleInfo.setLevel(level);
+
+        // 获取当前时间的毫秒级时间戳
+        long currentTimeMillis = System.currentTimeMillis();
+        // 将毫秒级时间戳转换为秒级时间戳
+        long currentTimeSeconds = currentTimeMillis / 1000;
+        if(logType == RoleInfoBean.TYPE_CREATE_ROLE){
+            roleInfo.setRoleCreateTime(currentTimeSeconds + "");
+        }
+        else if(logType == RoleInfoBean.TYPE_LEVEL_UP){
+            roleInfo.setRoleLevelUpTime(currentTimeSeconds + "");
+        }
+
+        DouYou.getInstance().reportRole(DouYouMainActivity.this, roleInfo);
+    }
+
+    //退出登录
+    public void extShowLogout(){
+        DouYou.getInstance().showLogout(DouYouMainActivity.this);
+    }
+
+    //退出app
+    public void extExitApp(){
+        DouYou.getInstance().exit();
+    }
+
+    //cp激励广告订单id  登录后用户uid  角色id
+    public void extOpenGroMoreAD(String cpAdOrderId, String roleId){
+        DouYou.getInstance().openGroMoreAD(cpAdOrderId, Integer.toString(uid), roleId);
+    }
+
+    //调起支付
+    public void extShowSwitchPayment(String orderId, String orderMoney, String productId, String productName, String productDesc, String roleServiceId, String serviceName, String roleId, String roleName, String roleLevel, String other){
+        OrderInfoBean orderInfoBean = new OrderInfoBean();
+        orderInfoBean.setOrderID(orderId);
+        orderInfoBean.setCpOrderMoney(orderMoney);
+        orderInfoBean.setProductId(productId);
+        orderInfoBean.setProductName(productName);
+        orderInfoBean.setProductDesc(productDesc);
+        orderInfoBean.setRoleServiceId(roleServiceId);
+        orderInfoBean.setRoleServiceName(serviceName);
+        orderInfoBean.setRoleId(roleId);
+        orderInfoBean.setRoleName(roleName);
+        orderInfoBean.setRoleLevel(roleLevel);
+        orderInfoBean.setOther(other);
+        
+        DouYou.getInstance().showSwitchPayment(DouYouMainActivity.this, orderInfoBean);
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        DouYou.getInstance().onStart(this);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnStart", "onStart finish");
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        DouYou.getInstance().onPause(this);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnPause", "onPause finish");
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        DouYou.getInstance().onResume(this);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnResume", "onResume finish");
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        DouYou.getInstance().onStop(this);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnStop", "onStop finish");
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        DouYou.getInstance().onDestroy(this);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnDestroy", "onDestroy finish");
+    }
+
+    @Override
+    protected void onRestart() {
+        super.onRestart();
+        DouYou.getInstance().onRestart(this);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnRestart", "onRestart finish");
+    }
+
+    @Override
+    public void onBackPressed() {
+        DouYou.getInstance().onBackPressed();
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnBackPressed", "onBackPressed finish");
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        DouYou.getInstance().onNewIntent(intent);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnNewIntent", "onNewIntent finish");
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        DouYou.getInstance().onConfigurationChanged(newConfig);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnConfigurationChanged", "onConfigurationChanged finish");
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        DouYou.getInstance().onSaveInstanceState(outState);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnSaveInstanceState", "onSaveInstanceState finish");
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        DouYou.getInstance().onActivityResult(requestCode, resultCode, data);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnActivityResult", "onActivityResult finish");
+    }
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+        DouYou.getInstance().onRequestPermissionResult(DouYouMainActivity.this,requestCode,permissions,grantResults);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnRequestPermissionResult", "onRequestPermissionsResult finish");
+    }
+
+    @Override
+    public void onWindowFocusChanged(boolean hasFocus) {
+        super.onWindowFocusChanged(hasFocus);
+        DouYou.getInstance().onWindowFocusChanged(hasFocus);
+        UnityPlayer.UnitySendMessage("DouYouSDKGameObject", "SdkOnWindowFocusChanged", "onWindowFocusChanged finish");
+    }
+}

+ 32 - 0
GameClient/Assets/Plugins/com/easy/bridge/DouYouMainActivity.java.meta

@@ -0,0 +1,32 @@
+fileFormatVersion: 2
+guid: d9bab6b10a929ac46bfc239972f59adc
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Android: Android
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Any: 
+    second:
+      enabled: 0
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: