Showing
8 changed files
with
209 additions
and
180 deletions
demo/.idea/compiler.xml
0 → 100644
... | @@ -14,6 +14,7 @@ | ... | @@ -14,6 +14,7 @@ |
14 | </set> | 14 | </set> |
15 | </option> | 15 | </option> |
16 | <option name="resolveModulePerSourceSet" value="false" /> | 16 | <option name="resolveModulePerSourceSet" value="false" /> |
17 | + <option name="useQualifiedModuleNames" value="true" /> | ||
17 | </GradleProjectSettings> | 18 | </GradleProjectSettings> |
18 | </option> | 19 | </option> |
19 | </component> | 20 | </component> | ... | ... |
demo/.idea/jarRepositories.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<project version="4"> | ||
3 | + <component name="RemoteRepositoriesConfiguration"> | ||
4 | + <remote-repository> | ||
5 | + <option name="id" value="central" /> | ||
6 | + <option name="name" value="Maven Central repository" /> | ||
7 | + <option name="url" value="https://repo1.maven.org/maven2" /> | ||
8 | + </remote-repository> | ||
9 | + <remote-repository> | ||
10 | + <option name="id" value="jboss.community" /> | ||
11 | + <option name="name" value="JBoss Community repository" /> | ||
12 | + <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> | ||
13 | + </remote-repository> | ||
14 | + <remote-repository> | ||
15 | + <option name="id" value="BintrayJCenter" /> | ||
16 | + <option name="name" value="BintrayJCenter" /> | ||
17 | + <option name="url" value="https://jcenter.bintray.com/" /> | ||
18 | + </remote-repository> | ||
19 | + <remote-repository> | ||
20 | + <option name="id" value="Google" /> | ||
21 | + <option name="name" value="Google" /> | ||
22 | + <option name="url" value="https://dl.google.com/dl/android/maven2/" /> | ||
23 | + </remote-repository> | ||
24 | + <remote-repository> | ||
25 | + <option name="id" value="D:\AndroidSDK\extras\m2repository" /> | ||
26 | + <option name="name" value="D:\AndroidSDK\extras\m2repository" /> | ||
27 | + <option name="url" value="file:/$PROJECT_DIR$/../../../AndroidSDK/extras/m2repository" /> | ||
28 | + </remote-repository> | ||
29 | + <remote-repository> | ||
30 | + <option name="id" value="D:\AndroidSDK\extras\google\m2repository" /> | ||
31 | + <option name="name" value="D:\AndroidSDK\extras\google\m2repository" /> | ||
32 | + <option name="url" value="file:/$PROJECT_DIR$/../../../AndroidSDK/extras/google/m2repository" /> | ||
33 | + </remote-repository> | ||
34 | + <remote-repository> | ||
35 | + <option name="id" value="D:\AndroidSDK\extras\android\m2repository" /> | ||
36 | + <option name="name" value="D:\AndroidSDK\extras\android\m2repository" /> | ||
37 | + <option name="url" value="file:/$PROJECT_DIR$/../../../AndroidSDK/extras/android/m2repository" /> | ||
38 | + </remote-repository> | ||
39 | + </component> | ||
40 | +</project> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <project version="4"> | 2 | <project version="4"> |
3 | - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | 3 | + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> |
4 | <output url="file://$PROJECT_DIR$/build/classes" /> | 4 | <output url="file://$PROJECT_DIR$/build/classes" /> |
5 | </component> | 5 | </component> |
6 | <component name="ProjectType"> | 6 | <component name="ProjectType"> | ... | ... |
1 | apply plugin: 'com.android.application' | 1 | apply plugin: 'com.android.application' |
2 | 2 | ||
3 | android { | 3 | android { |
4 | - compileSdkVersion 28 | 4 | + compileSdkVersion 29 |
5 | buildToolsVersion '29.0.2' | 5 | buildToolsVersion '29.0.2' |
6 | defaultConfig { | 6 | defaultConfig { |
7 | - applicationId "com.ssjh.demo" | 7 | + applicationId "com.poolsdk.demo" |
8 | - minSdkVersion 14 | 8 | + minSdkVersion 21 |
9 | - targetSdkVersion 28 | 9 | + targetSdkVersion 29 |
10 | versionCode 2 | 10 | versionCode 2 |
11 | versionName "1.0" | 11 | versionName "1.0" |
12 | } | 12 | } |
... | @@ -32,6 +32,6 @@ dependencies { | ... | @@ -32,6 +32,6 @@ dependencies { |
32 | // implementation 'com.android.installreferrer:installreferrer:1.0' | 32 | // implementation 'com.android.installreferrer:installreferrer:1.0' |
33 | 33 | ||
34 | // implementation 'com.google.android.gms:play-services-ads-identifier:16.0.0' | 34 | // implementation 'com.google.android.gms:play-services-ads-identifier:16.0.0' |
35 | - compile 'com.google.firebase:firebase-core:16.0.6' | 35 | +// compile 'com.google.firebase:firebase-core:16.0.6' |
36 | - compile 'com.google.firebase:firebase-messaging:17.3.4' | 36 | +// compile 'com.google.firebase:firebase-messaging:17.3.4' |
37 | } | 37 | } | ... | ... |
1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
3 | - package="com.youai.demo.shenshou"> | 3 | + package="com.poolsdk.demo"> |
4 | 4 | ||
5 | <!-- SDK start --> | 5 | <!-- SDK start --> |
6 | - <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> | ||
7 | <uses-permission android:name="android.permission.INTERNET" /> | 6 | <uses-permission android:name="android.permission.INTERNET" /> |
8 | - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | 7 | + <!-- 国内需要用公共SDK的后台数据功能需要以下权限 --> |
9 | <uses-permission android:name="android.permission.READ_PHONE_STATE" /> | 8 | <uses-permission android:name="android.permission.READ_PHONE_STATE" /> |
10 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | 9 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
11 | - <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> | 10 | + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
12 | - <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> | ||
13 | - <uses-permission android:name="android.permission.GET_TASKS" /> | ||
14 | - <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> | ||
15 | - <uses-permission android:name="android.permission.RECORD_AUDIO" /> | ||
16 | <!-- SDK end --> | 11 | <!-- SDK end --> |
17 | 12 | ||
18 | <application | 13 | <application |
19 | android:name="com.gzpublic.app.sdk.application.PoolSDKApplication" | 14 | android:name="com.gzpublic.app.sdk.application.PoolSDKApplication" |
20 | android:allowBackup="false" | 15 | android:allowBackup="false" |
21 | android:icon="@drawable/public_sdk_self_ic_launcher" | 16 | android:icon="@drawable/public_sdk_self_ic_launcher" |
22 | - android:label="@string/app_name" > | 17 | + android:label="@string/app_name"> |
23 | <activity | 18 | <activity |
24 | android:name="com.youai.foolsdk.demo.AppActivity" | 19 | android:name="com.youai.foolsdk.demo.AppActivity" |
25 | android:configChanges="keyboardHidden|orientation|screenSize" | 20 | android:configChanges="keyboardHidden|orientation|screenSize" |
26 | android:label="@string/app_name" | 21 | android:label="@string/app_name" |
27 | android:screenOrientation="portrait" | 22 | android:screenOrientation="portrait" |
28 | - android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > | 23 | + android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> |
29 | <intent-filter> | 24 | <intent-filter> |
30 | <action android:name="android.intent.action.MAIN" /> | 25 | <action android:name="android.intent.action.MAIN" /> |
31 | 26 | ||
32 | <category android:name="android.intent.category.LAUNCHER" /> | 27 | <category android:name="android.intent.category.LAUNCHER" /> |
33 | </intent-filter> | 28 | </intent-filter> |
34 | </activity> | 29 | </activity> |
35 | - <!-- SDK start --> | ||
36 | - <activity | ||
37 | - android:name="com.appsdk.sdk.YouaiSDK" | ||
38 | - android:label="youai_sdk" | ||
39 | - android:launchMode="singleTask" | ||
40 | - android:theme="@android:style/Theme.Dialog" /> | ||
41 | - | ||
42 | - <service | ||
43 | - android:name="com.appsdk.sdk.YouaiService" | ||
44 | - android:enabled="true" > | ||
45 | - <intent-filter> | ||
46 | - <action android:name="com.youai.sdk.YouaiService" /> | ||
47 | - </intent-filter> | ||
48 | - </service> | ||
49 | - | ||
50 | - <receiver android:name="com.appsdk.sdk.Receiver" > | ||
51 | - <intent-filter> | ||
52 | - <action android:name="android.intent.action.BOOT_COMPLETED" /> | ||
53 | 30 | ||
54 | - <category android:name="android.intent.category.LAUNCHER" /> | 31 | + <!-- SDK start --> |
55 | - </intent-filter> | ||
56 | - </receiver> | ||
57 | 32 | ||
58 | - <activity | ||
59 | - android:name="com.alipay.sdk.app.H5PayActivity" | ||
60 | - android:configChanges="keyboardHidden|navigation|orientation" | ||
61 | - android:exported="false" | ||
62 | - android:screenOrientation="behind" /> | ||
63 | - <activity | ||
64 | - android:name="com.alipay.sdk.auth.AuthActivity" | ||
65 | - android:configChanges="keyboardHidden|navigation|orientation" | ||
66 | - android:exported="false" | ||
67 | - android:screenOrientation="behind" /> | ||
68 | <!-- SDK end --> | 33 | <!-- SDK end --> |
69 | </application> | 34 | </application> |
70 | 35 | ... | ... |
... | @@ -3,21 +3,18 @@ package com.youai.foolsdk.demo; | ... | @@ -3,21 +3,18 @@ package com.youai.foolsdk.demo; |
3 | import android.Manifest; | 3 | import android.Manifest; |
4 | import android.app.Activity; | 4 | import android.app.Activity; |
5 | import android.app.AlertDialog; | 5 | import android.app.AlertDialog; |
6 | -import android.app.Application; | ||
7 | import android.content.DialogInterface; | 6 | import android.content.DialogInterface; |
8 | import android.content.Intent; | 7 | import android.content.Intent; |
9 | import android.content.res.Configuration; | 8 | import android.content.res.Configuration; |
10 | import android.os.Build; | 9 | import android.os.Build; |
11 | import android.os.Bundle; | 10 | import android.os.Bundle; |
12 | import android.os.Handler; | 11 | import android.os.Handler; |
13 | -import android.util.Log; | ||
14 | import android.view.KeyEvent; | 12 | import android.view.KeyEvent; |
15 | import android.view.View; | 13 | import android.view.View; |
16 | import android.view.View.OnClickListener; | 14 | import android.view.View.OnClickListener; |
17 | import android.view.WindowManager.LayoutParams; | 15 | import android.view.WindowManager.LayoutParams; |
18 | import android.widget.Button; | 16 | import android.widget.Button; |
19 | import android.widget.TextView; | 17 | import android.widget.TextView; |
20 | -import android.widget.Toast; | ||
21 | 18 | ||
22 | import com.gzpublic.app.sdk.framework.PoolEventParameterName; | 19 | import com.gzpublic.app.sdk.framework.PoolEventParameterName; |
23 | import com.gzpublic.app.sdk.framework.PoolEventType; | 20 | import com.gzpublic.app.sdk.framework.PoolEventType; |
... | @@ -30,7 +27,6 @@ import com.gzpublic.app.sdk.framework.PoolLogoutListener; | ... | @@ -30,7 +27,6 @@ import com.gzpublic.app.sdk.framework.PoolLogoutListener; |
30 | import com.gzpublic.app.sdk.framework.PoolPayInfo; | 27 | import com.gzpublic.app.sdk.framework.PoolPayInfo; |
31 | import com.gzpublic.app.sdk.framework.PoolPayListener; | 28 | import com.gzpublic.app.sdk.framework.PoolPayListener; |
32 | import com.gzpublic.app.sdk.framework.PoolPayOrderConfirmHandler; | 29 | import com.gzpublic.app.sdk.framework.PoolPayOrderConfirmHandler; |
33 | -import com.gzpublic.app.sdk.framework.PoolReport; | ||
34 | import com.gzpublic.app.sdk.framework.PoolRoleInfo; | 30 | import com.gzpublic.app.sdk.framework.PoolRoleInfo; |
35 | import com.gzpublic.app.sdk.framework.PoolRoleListener; | 31 | import com.gzpublic.app.sdk.framework.PoolRoleListener; |
36 | import com.gzpublic.app.sdk.framework.PoolSDKCallBackListener; | 32 | import com.gzpublic.app.sdk.framework.PoolSDKCallBackListener; |
... | @@ -45,31 +41,18 @@ import org.json.JSONException; | ... | @@ -45,31 +41,18 @@ import org.json.JSONException; |
45 | import org.json.JSONObject; | 41 | import org.json.JSONObject; |
46 | 42 | ||
47 | import java.util.HashMap; | 43 | import java.util.HashMap; |
48 | -import java.util.Locale; | ||
49 | import java.util.Map; | 44 | import java.util.Map; |
50 | 45 | ||
51 | public class AppActivity extends Activity implements OnClickListener { | 46 | public class AppActivity extends Activity implements OnClickListener { |
52 | - //新的view | ||
53 | - private Button btLogin; | ||
54 | - private Button btEnterGame; | ||
55 | - private Button btPay; | ||
56 | - private Button btLogout; | ||
57 | - private Button btSubRoleInfo; | ||
58 | - private Button btOpenChannel; | ||
59 | - private Button btSwitchAcc; | ||
60 | - private Button btOpenBbs; | ||
61 | - private Button btQueryProducts; | ||
62 | - private Button pb_bt_verifyname; | ||
63 | 47 | ||
64 | - private Bundle saveBundle; | ||
65 | - //提示LOG | ||
66 | - private TextView txMsg,txSdkMsg; | ||
67 | - private Activity mContext; | ||
68 | - private PoolPayListener mPoolPayListener = new PoolPayListener() { | ||
69 | 48 | ||
49 | + private PoolPayListener mPoolPayListener = new PoolPayListener() { | ||
70 | @Override | 50 | @Override |
71 | - public void onPaySuccess(String paramCustom) {//支付回调以服务端通知为准 | 51 | + public void onPaySuccess(String paramCustom) { |
72 | - // TODO Auto-generated method stub | 52 | + //支付回调以服务端通知为准 |
53 | + upTx("支付成功回调:" + paramCustom); | ||
54 | + | ||
55 | + | ||
73 | //[{"orderId":"20180116114151740535D825","state":0,"productId":"1","productName":"金币","amout":0}] | 56 | //[{"orderId":"20180116114151740535D825","state":0,"productId":"1","productName":"金币","amout":0}] |
74 | if(paramCustom == null || paramCustom.length() <= 0) | 57 | if(paramCustom == null || paramCustom.length() <= 0) |
75 | { | 58 | { |
... | @@ -94,22 +77,19 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -94,22 +77,19 @@ public class AppActivity extends Activity implements OnClickListener { |
94 | // TODO Auto-generated catch block | 77 | // TODO Auto-generated catch block |
95 | e.printStackTrace(); | 78 | e.printStackTrace(); |
96 | } | 79 | } |
97 | - upTx("支付成功回调:" + paramCustom); | ||
98 | } | 80 | } |
99 | 81 | ||
100 | @Override | 82 | @Override |
101 | public void onPayFailed(String paramCustom, String errorMsg) { | 83 | public void onPayFailed(String paramCustom, String errorMsg) { |
102 | - // TODO Auto-generated method stub | 84 | + System.out.println("支付失败回调:" + paramCustom + "; errorMsg:"+ errorMsg); |
103 | - System.out.println("支付失败回调:" + paramCustom + "; errorMsg:" | 85 | + upTx("支付失败回调:" + paramCustom + "; errorMsg:" + errorMsg); |
104 | - + errorMsg); | ||
105 | - upTx("支付失败回调:" + paramCustom + "; errorMsg:" | ||
106 | - + errorMsg); | ||
107 | } | 86 | } |
108 | }; | 87 | }; |
109 | 88 | ||
110 | @Override | 89 | @Override |
111 | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { | 90 | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { |
112 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); | 91 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
92 | + | ||
113 | PoolSdkHelper.onRequestPermissionsResult(requestCode, permissions, grantResults); | 93 | PoolSdkHelper.onRequestPermissionsResult(requestCode, permissions, grantResults); |
114 | init(saveBundle); | 94 | init(saveBundle); |
115 | } | 95 | } |
... | @@ -118,17 +98,17 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -118,17 +98,17 @@ public class AppActivity extends Activity implements OnClickListener { |
118 | protected void onCreate(Bundle savedInstanceState) { | 98 | protected void onCreate(Bundle savedInstanceState) { |
119 | super.onCreate(savedInstanceState); | 99 | super.onCreate(savedInstanceState); |
120 | saveBundle = savedInstanceState; | 100 | saveBundle = savedInstanceState; |
121 | - int layoutId = getResources().getIdentifier( | ||
122 | - "public_sdk_self_test", "layout", getPackageName()); | ||
123 | - setContentView(layoutId); | ||
124 | - mContext = this; | ||
125 | initView(); | 101 | initView(); |
102 | + | ||
103 | + | ||
126 | PoolSdkLog.setIsShowLog(true); | 104 | PoolSdkLog.setIsShowLog(true); |
127 | PoolSdkConfig.readPoolSdkConfigData(this); | 105 | PoolSdkConfig.readPoolSdkConfigData(this); |
128 | 106 | ||
107 | + //国内游戏接入如果需要使用平台统计等功能,需要获取手机识别号和读写SD卡权限再调用初始化接口 | ||
129 | if(getApplicationInfo().targetSdkVersion >= 23 && Build.VERSION.SDK_INT >= 23){ | 108 | if(getApplicationInfo().targetSdkVersion >= 23 && Build.VERSION.SDK_INT >= 23){ |
130 | requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE,Manifest.permission.WRITE_EXTERNAL_STORAGE},1); | 109 | requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE,Manifest.permission.WRITE_EXTERNAL_STORAGE},1); |
131 | - }else {//不需要权限直接调用init | 110 | + }else { |
111 | + //不需要权限直接调用init | ||
132 | this.init(savedInstanceState); | 112 | this.init(savedInstanceState); |
133 | } | 113 | } |
134 | 114 | ||
... | @@ -140,16 +120,18 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -140,16 +120,18 @@ public class AppActivity extends Activity implements OnClickListener { |
140 | } | 120 | } |
141 | 121 | ||
142 | private void init( Bundle savedInstanceState){ | 122 | private void init( Bundle savedInstanceState){ |
123 | + | ||
124 | + //PoolSDK初始化接口 | ||
143 | PoolSdkHelper.init(this, new PoolSDKCallBackListener() { | 125 | PoolSdkHelper.init(this, new PoolSDKCallBackListener() { |
144 | @Override | 126 | @Override |
145 | public void poolSdkCallBack(int code, String msg) { | 127 | public void poolSdkCallBack(int code, String msg) { |
146 | PoolSdkLog.logInfo("poolSdkCallBack:code:" + code + ",msg:" + msg); | 128 | PoolSdkLog.logInfo("poolSdkCallBack:code:" + code + ",msg:" + msg); |
147 | upTx("poolSdkCallBack:code:" + code + ",msg:" + msg); | 129 | upTx("poolSdkCallBack:code:" + code + ",msg:" + msg); |
148 | switch (code) { | 130 | switch (code) { |
149 | - case PoolSDKCode.POOLSDK_INIT_SUCCESS:// 初始化成功 | 131 | + case PoolSDKCode.POOLSDK_INIT_SUCCESS: |
132 | + // 初始化成功,游戏可以调用登录接口 | ||
150 | PoolSdkLog.logInfo("游戏中收到初始化成功回调"); | 133 | PoolSdkLog.logInfo("游戏中收到初始化成功回调"); |
151 | new Handler().postDelayed(new Runnable() { | 134 | new Handler().postDelayed(new Runnable() { |
152 | - | ||
153 | @Override | 135 | @Override |
154 | public void run() { | 136 | public void run() { |
155 | login(); | 137 | login(); |
... | @@ -157,8 +139,10 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -157,8 +139,10 @@ public class AppActivity extends Activity implements OnClickListener { |
157 | }, 1000); | 139 | }, 1000); |
158 | break; | 140 | break; |
159 | case PoolSDKCode.POOLSDK_INIT_FAIL: | 141 | case PoolSDKCode.POOLSDK_INIT_FAIL: |
142 | + //初始化失败,游戏可以尝试重新调用初始化接口或退出游戏等操作 | ||
160 | break; | 143 | break; |
161 | case PoolSDKCode.POOLSDK_QUERY_WITH_PRODUCTS: | 144 | case PoolSDKCode.POOLSDK_QUERY_WITH_PRODUCTS: |
145 | + //该接口为查询谷歌支付当地货币价格接口,国内游戏无需接入 | ||
162 | //msg:为查询的结果值 | 146 | //msg:为查询的结果值 |
163 | /** | 147 | /** |
164 | * {//查询商品信息返回数据 | 148 | * {//查询商品信息返回数据 |
... | @@ -173,7 +157,8 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -173,7 +157,8 @@ public class AppActivity extends Activity implements OnClickListener { |
173 | * } | 157 | * } |
174 | */ | 158 | */ |
175 | break; | 159 | break; |
176 | - case PoolSDKCode.POOLSDK_EXTENDS_CODE1://实名认证成功才有回调 | 160 | + case PoolSDKCode.POOLSDK_EXTENDS_CODE1: |
161 | + //实名认证成功才有回调 | ||
177 | //msg为生日 | 162 | //msg为生日 |
178 | break; | 163 | break; |
179 | 164 | ||
... | @@ -195,18 +180,22 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -195,18 +180,22 @@ public class AppActivity extends Activity implements OnClickListener { |
195 | } | 180 | } |
196 | } | 181 | } |
197 | },savedInstanceState);// init(this);// this为游戏的activity对象 | 182 | },savedInstanceState);// init(this);// this为游戏的activity对象 |
183 | + | ||
184 | + //设置支付回调接口监听 | ||
198 | PoolSdkHelper.setPayListener(mPoolPayListener); | 185 | PoolSdkHelper.setPayListener(mPoolPayListener); |
186 | + | ||
187 | + //设置注销账号接口监听 | ||
199 | PoolSdkHelper.setLogoutCallback(new PoolLogoutListener() { | 188 | PoolSdkHelper.setLogoutCallback(new PoolLogoutListener() { |
200 | @Override | 189 | @Override |
201 | public void onLogoutSuccess() { | 190 | public void onLogoutSuccess() { |
202 | // TODO: 此处处理SDK登出的逻辑 | 191 | // TODO: 此处处理SDK登出的逻辑 |
203 | - PoolSdkLog.logInfo("游戏中收到logoutSuccess回调"); | 192 | + PoolSdkLog.logInfo("游戏中收到SDK logoutSuccess回调"); |
193 | + //游戏退出当前账号 回到初始界面 重新调起登录操作 | ||
204 | login(); | 194 | login(); |
205 | } | 195 | } |
206 | }); | 196 | }); |
207 | - PoolSdkHelper.trackEvent(getApplicationContext(), PoolEventType.POOL_RES_LOADED, null); | ||
208 | 197 | ||
209 | - //开启公共SDK的防沉迷功能 | 198 | + //开启公共SDK的防沉迷功能,国内游戏按需使用,海外游戏无需接入 |
210 | PoolSdkAntiAddiction.isUseAntiAddiction = true; | 199 | PoolSdkAntiAddiction.isUseAntiAddiction = true; |
211 | //PoolSdkAntiAddiction.isUseAntiAddictionToast = true;//防沉迷相关toast提示(默认关闭) | 200 | //PoolSdkAntiAddiction.isUseAntiAddictionToast = true;//防沉迷相关toast提示(默认关闭) |
212 | } | 201 | } |
... | @@ -289,11 +278,15 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -289,11 +278,15 @@ public class AppActivity extends Activity implements OnClickListener { |
289 | PoolSdkHelper.onWindowAttributesChanged(params); | 278 | PoolSdkHelper.onWindowAttributesChanged(params); |
290 | } | 279 | } |
291 | 280 | ||
281 | + //返回键退出游戏时 显示退出界面 | ||
292 | @Override | 282 | @Override |
293 | public boolean dispatchKeyEvent(KeyEvent pKeyEvent) { | 283 | public boolean dispatchKeyEvent(KeyEvent pKeyEvent) { |
294 | if (pKeyEvent.getKeyCode() == KeyEvent.KEYCODE_BACK | 284 | if (pKeyEvent.getKeyCode() == KeyEvent.KEYCODE_BACK |
295 | && pKeyEvent.getAction() == KeyEvent.ACTION_DOWN) { | 285 | && pKeyEvent.getAction() == KeyEvent.ACTION_DOWN) { |
286 | + | ||
287 | + //判断当前SDK是否自带退出界面 | ||
296 | if (PoolSdkHelper.hasExitDialog()) { | 288 | if (PoolSdkHelper.hasExitDialog()) { |
289 | + //显示SDK的退出界面 | ||
297 | PoolSdkHelper.showExitDialog(new PoolExitDialogListener() { | 290 | PoolSdkHelper.showExitDialog(new PoolExitDialogListener() { |
298 | @Override | 291 | @Override |
299 | public void onDialogResult(int code, String msg) { | 292 | public void onDialogResult(int code, String msg) { |
... | @@ -314,7 +307,7 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -314,7 +307,7 @@ public class AppActivity extends Activity implements OnClickListener { |
314 | } | 307 | } |
315 | }); | 308 | }); |
316 | } else { | 309 | } else { |
317 | - // TODO: 调用游戏的退出界面 | 310 | + //SDK无退出界面,调用游戏自己的退出界面 |
318 | showGameExitTips(); | 311 | showGameExitTips(); |
319 | } | 312 | } |
320 | return false; | 313 | return false; |
... | @@ -322,66 +315,6 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -322,66 +315,6 @@ public class AppActivity extends Activity implements OnClickListener { |
322 | return super.dispatchKeyEvent(pKeyEvent); | 315 | return super.dispatchKeyEvent(pKeyEvent); |
323 | } | 316 | } |
324 | 317 | ||
325 | - private void showGameExitTips() { | ||
326 | - AlertDialog.Builder dialog = new AlertDialog.Builder(this); | ||
327 | - int ic_dialog_alert_id = getRedIdByName("ic_dialog_alert", "drawable"); | ||
328 | - dialog.setIcon(ic_dialog_alert_id); | ||
329 | - dialog.setTitle("提示"); | ||
330 | - dialog.setMessage("是否退出游戏?"); | ||
331 | - dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { | ||
332 | - @Override | ||
333 | - public void onClick(DialogInterface dialog, int which) { | ||
334 | - PoolSdkHelper.exitGame(new PoolExitListener() { | ||
335 | - @Override | ||
336 | - public void onExitGame() { | ||
337 | - finish(); | ||
338 | - } | ||
339 | - }); | ||
340 | - } | ||
341 | - }); | ||
342 | - dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { | ||
343 | - @Override | ||
344 | - public void onClick(DialogInterface dialog, int which) { | ||
345 | - dialog.dismiss(); | ||
346 | - } | ||
347 | - }); | ||
348 | - dialog.show(); | ||
349 | - } | ||
350 | - | ||
351 | - private int getRedIdByName(String resName, String resType) { | ||
352 | - return getResources().getIdentifier(resName, resType, getPackageName()); | ||
353 | - } | ||
354 | - | ||
355 | - private void initView(){ | ||
356 | - btLogin = (Button) findViewById(getRedIdByName("pb_bt_login", "id")); | ||
357 | - btEnterGame = (Button) findViewById(getRedIdByName("pb_bt_entergame", "id")); | ||
358 | - btPay = (Button) findViewById(getRedIdByName("pb_bt_pay", "id")); | ||
359 | - btLogout = (Button) findViewById(getRedIdByName("pb_bt_logout", "id")); | ||
360 | - btSubRoleInfo = (Button) findViewById(getRedIdByName("pb_bt_subrole", "id")); | ||
361 | - btOpenChannel = (Button) findViewById(getRedIdByName("pb_bt_openchannel", "id")); | ||
362 | - btSwitchAcc = (Button) findViewById(getRedIdByName("pb_bt_switchacc", "id")); | ||
363 | - btOpenBbs = (Button) findViewById(getRedIdByName("pb_bt_openbbs", "id")); | ||
364 | - btQueryProducts = findViewById(getRedIdByName("pool_query_products_id","id")); | ||
365 | - pb_bt_verifyname = (Button) findViewById(getRedIdByName("pb_bt_verifyname", "id")); | ||
366 | - | ||
367 | - txMsg = (TextView) findViewById(getRedIdByName("tx_msg", "id")); | ||
368 | - txSdkMsg = (TextView) findViewById(getRedIdByName("tx_sdk_msg", "id")); | ||
369 | - | ||
370 | - btLogin.setOnClickListener(this); | ||
371 | - btEnterGame.setOnClickListener(this); | ||
372 | - btPay.setOnClickListener(this); | ||
373 | - btLogout.setOnClickListener(this); | ||
374 | - btSubRoleInfo.setOnClickListener(this); | ||
375 | - btOpenChannel.setOnClickListener(this); | ||
376 | - btSwitchAcc.setOnClickListener(this); | ||
377 | - btOpenBbs.setOnClickListener(this); | ||
378 | - btQueryProducts.setOnClickListener(this); | ||
379 | - pb_bt_verifyname.setOnClickListener(this); | ||
380 | - } | ||
381 | - | ||
382 | - public void yaOnClick(View view) { | ||
383 | - } | ||
384 | - | ||
385 | @Override | 318 | @Override |
386 | public void onClick(View view) { | 319 | public void onClick(View view) { |
387 | //新view | 320 | //新view |
... | @@ -393,7 +326,7 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -393,7 +326,7 @@ public class AppActivity extends Activity implements OnClickListener { |
393 | }else if (view == btPay) { | 326 | }else if (view == btPay) { |
394 | pay(); | 327 | pay(); |
395 | }else if (view == btLogout) { | 328 | }else if (view == btLogout) { |
396 | - logout(); | 329 | + //logout(); |
397 | }else if (view == btSubRoleInfo) { | 330 | }else if (view == btSubRoleInfo) { |
398 | //角色升级 | 331 | //角色升级 |
399 | submitRoleData(11,PoolRoleInfo.Type_RoleUpgrade); | 332 | submitRoleData(11,PoolRoleInfo.Type_RoleUpgrade); |
... | @@ -407,7 +340,8 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -407,7 +340,8 @@ public class AppActivity extends Activity implements OnClickListener { |
407 | queryProducts(); | 340 | queryProducts(); |
408 | }else if (view == pb_bt_verifyname){ | 341 | }else if (view == pb_bt_verifyname){ |
409 | //Toast.makeText(this,PoolSdkHelper.verifyRealName(this),Toast.LENGTH_SHORT).show(); | 342 | //Toast.makeText(this,PoolSdkHelper.verifyRealName(this),Toast.LENGTH_SHORT).show(); |
410 | - //渠道无实名认证功能时,可以调用公共SDK的实名认证接口,在登录成功后才可以调用 | 343 | + |
344 | + //渠道无实名认证功能时,可以调用公共SDK的实名认证接口,在登录成功后才可以调用,海外游戏无需接入,国内游戏按需使用 | ||
411 | PoolSdkHelper.setUserIDInfo("尚福乐", "211322198509260317", new PoolSdkAntiAddictionUserInfoListener() { | 345 | PoolSdkHelper.setUserIDInfo("尚福乐", "211322198509260317", new PoolSdkAntiAddictionUserInfoListener() { |
412 | @Override | 346 | @Override |
413 | public void onSuccess(int totalGameTime, int totalPayMoney, String ymd) { | 347 | public void onSuccess(int totalGameTime, int totalPayMoney, String ymd) { |
... | @@ -433,6 +367,7 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -433,6 +367,7 @@ public class AppActivity extends Activity implements OnClickListener { |
433 | } | 367 | } |
434 | 368 | ||
435 | private void trackEvent(){ | 369 | private void trackEvent(){ |
370 | + //使用AF和FB 等统计功能 需要调用该统计接口 value 具体参考文档 | ||
436 | Map<String,Object> valueMap = new HashMap<>(); | 371 | Map<String,Object> valueMap = new HashMap<>(); |
437 | valueMap.put(PoolEventParameterName.POOL_ORDER_ID,System.currentTimeMillis()+"");//订单号 | 372 | valueMap.put(PoolEventParameterName.POOL_ORDER_ID,System.currentTimeMillis()+"");//订单号 |
438 | valueMap.put(PoolEventParameterName.POOL_CURRENCY,"USD");//货币类型 USD:美元 CNY:人民币 | 373 | valueMap.put(PoolEventParameterName.POOL_CURRENCY,"USD");//货币类型 USD:美元 CNY:人民币 |
... | @@ -440,34 +375,13 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -440,34 +375,13 @@ public class AppActivity extends Activity implements OnClickListener { |
440 | PoolSdkHelper.trackEvent(getApplicationContext(), PoolEventType.POOL_RES_LOADED,valueMap); | 375 | PoolSdkHelper.trackEvent(getApplicationContext(), PoolEventType.POOL_RES_LOADED,valueMap); |
441 | } | 376 | } |
442 | 377 | ||
443 | - private void logout(){ | ||
444 | -// if(PoolSdkHelper.hasLogout()){ | ||
445 | -// PoolSdkHelper.logout(this);//结果回调通知到PoolLogoutListener | ||
446 | -// } | ||
447 | - } | ||
448 | - | ||
449 | - private void upTx(final String msg){ | ||
450 | - mContext.runOnUiThread(new Runnable() { | ||
451 | - | ||
452 | - @Override | ||
453 | - public void run() { | ||
454 | - txMsg.setText(msg); | ||
455 | - } | ||
456 | - }); | ||
457 | -// new Handler().post(new Runnable() { | ||
458 | -// | ||
459 | -// @Override | ||
460 | -// public void run() { | ||
461 | -// txMsg.setText(msg); | ||
462 | -// } | ||
463 | -// }); | ||
464 | - } | ||
465 | - | ||
466 | private void login() { | 378 | private void login() { |
467 | PoolSdkLog.logError("调用login"); | 379 | PoolSdkLog.logError("调用login"); |
380 | + //调用Poolsdk 登录接口 | ||
468 | PoolSdkHelper.login("登录自定义字段", new PoolLoginListener() { | 381 | PoolSdkHelper.login("登录自定义字段", new PoolLoginListener() { |
469 | @Override | 382 | @Override |
470 | public void onLoginSuccess(PoolLoginInfo poolLoginInfo) { | 383 | public void onLoginSuccess(PoolLoginInfo poolLoginInfo) { |
384 | + | ||
471 | final String userType = poolLoginInfo.getUserType(); | 385 | final String userType = poolLoginInfo.getUserType(); |
472 | final String timestamp = poolLoginInfo.getTimestamp(); | 386 | final String timestamp = poolLoginInfo.getTimestamp(); |
473 | final String serverSign = poolLoginInfo.getServerSign(); | 387 | final String serverSign = poolLoginInfo.getServerSign(); |
... | @@ -489,11 +403,13 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -489,11 +403,13 @@ public class AppActivity extends Activity implements OnClickListener { |
489 | } | 403 | } |
490 | }); | 404 | }); |
491 | 405 | ||
492 | - | 406 | + //单机游戏无服务端支付结果查询接口,网游无需接入 |
493 | PoolPayOrderConfirmHandler.getInstance(this, 2000, 1000).startOrderConfirmOp(mPoolPayListener); | 407 | PoolPayOrderConfirmHandler.getInstance(this, 2000, 1000).startOrderConfirmOp(mPoolPayListener); |
494 | } | 408 | } |
495 | 409 | ||
496 | private void pay() { | 410 | private void pay() { |
411 | + | ||
412 | + //Poolsdk 支付接口 | ||
497 | final PoolPayInfo poolPayInfo = new PoolPayInfo(); | 413 | final PoolPayInfo poolPayInfo = new PoolPayInfo(); |
498 | 414 | ||
499 | /******************************************** | 415 | /******************************************** |
... | @@ -595,7 +511,8 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -595,7 +511,8 @@ public class AppActivity extends Activity implements OnClickListener { |
595 | PoolSdkHelper.logout(this);//注销成功后结果回调通知到PoolLogoutListener中 | 511 | PoolSdkHelper.logout(this);//注销成功后结果回调通知到PoolLogoutListener中 |
596 | }else if(PoolSdkHelper.hasSwitchAccount()){ | 512 | }else if(PoolSdkHelper.hasSwitchAccount()){ |
597 | PoolSdkHelper.switchAccount(this);//切换成功后回回调结果到登录成功通知中(与登录通知数据一样) | 513 | PoolSdkHelper.switchAccount(this);//切换成功后回回调结果到登录成功通知中(与登录通知数据一样) |
598 | - }else{//渠道不存在注销和切换账号接口,游戏可自定处理逻辑 | 514 | + }else{ |
515 | + //渠道不存在注销和切换账号接口,游戏可自定处理逻辑,退出当前角色,回到初始界面重新调用登录接口 | ||
599 | } | 516 | } |
600 | } | 517 | } |
601 | 518 | ||
... | @@ -611,7 +528,7 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -611,7 +528,7 @@ public class AppActivity extends Activity implements OnClickListener { |
611 | } | 528 | } |
612 | 529 | ||
613 | /** | 530 | /** |
614 | - * 商品查询接口 | 531 | + * 商品查询接口,用于谷歌支付,在商品列表中显示当地货币价格,回到在初始化接口中 |
615 | */ | 532 | */ |
616 | private void queryProducts(){ | 533 | private void queryProducts(){ |
617 | PoolSdkLog.logError(PoolSdkHelper.hasFunction("hasQueryWithProducts") + "SSS"); | 534 | PoolSdkLog.logError(PoolSdkHelper.hasFunction("hasQueryWithProducts") + "SSS"); |
... | @@ -621,4 +538,106 @@ public class AppActivity extends Activity implements OnClickListener { | ... | @@ -621,4 +538,106 @@ public class AppActivity extends Activity implements OnClickListener { |
621 | PoolSdkHelper.callFunc("queryWithProducts",productMap); | 538 | PoolSdkHelper.callFunc("queryWithProducts",productMap); |
622 | } | 539 | } |
623 | 540 | ||
541 | + | ||
542 | + | ||
543 | + //---------------------------- SDK 相关 ↑ ------------------------------ | ||
544 | + | ||
545 | + //新的view | ||
546 | + private Button btLogin; | ||
547 | + private Button btEnterGame; | ||
548 | + private Button btPay; | ||
549 | + private Button btLogout; | ||
550 | + private Button btSubRoleInfo; | ||
551 | + private Button btOpenChannel; | ||
552 | + private Button btSwitchAcc; | ||
553 | + private Button btOpenBbs; | ||
554 | + private Button btQueryProducts; | ||
555 | + private Button pb_bt_verifyname; | ||
556 | + | ||
557 | + private Bundle saveBundle; | ||
558 | + //提示LOG | ||
559 | + private TextView txMsg,txSdkMsg; | ||
560 | + private Activity mContext; | ||
561 | + | ||
562 | + | ||
563 | + private void showGameExitTips() { | ||
564 | + AlertDialog.Builder dialog = new AlertDialog.Builder(this); | ||
565 | + int ic_dialog_alert_id = getRedIdByName("ic_dialog_alert", "drawable"); | ||
566 | + dialog.setIcon(ic_dialog_alert_id); | ||
567 | + dialog.setTitle("提示"); | ||
568 | + dialog.setMessage("是否退出游戏?"); | ||
569 | + dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { | ||
570 | + @Override | ||
571 | + public void onClick(DialogInterface dialog, int which) { | ||
572 | + PoolSdkHelper.exitGame(new PoolExitListener() { | ||
573 | + @Override | ||
574 | + public void onExitGame() { | ||
575 | + finish(); | ||
576 | + } | ||
577 | + }); | ||
578 | + } | ||
579 | + }); | ||
580 | + dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { | ||
581 | + @Override | ||
582 | + public void onClick(DialogInterface dialog, int which) { | ||
583 | + dialog.dismiss(); | ||
584 | + } | ||
585 | + }); | ||
586 | + dialog.show(); | ||
587 | + } | ||
588 | + | ||
589 | + private int getRedIdByName(String resName, String resType) { | ||
590 | + return getResources().getIdentifier(resName, resType, getPackageName()); | ||
591 | + } | ||
592 | + | ||
593 | + private void initView(){ | ||
594 | + int layoutId = getResources().getIdentifier("public_sdk_self_test", "layout", getPackageName()); | ||
595 | + setContentView(layoutId); | ||
596 | + mContext = this; | ||
597 | + | ||
598 | + btLogin = (Button) findViewById(getRedIdByName("pb_bt_login", "id")); | ||
599 | + btEnterGame = (Button) findViewById(getRedIdByName("pb_bt_entergame", "id")); | ||
600 | + btPay = (Button) findViewById(getRedIdByName("pb_bt_pay", "id")); | ||
601 | + btLogout = (Button) findViewById(getRedIdByName("pb_bt_logout", "id")); | ||
602 | + btSubRoleInfo = (Button) findViewById(getRedIdByName("pb_bt_subrole", "id")); | ||
603 | + btOpenChannel = (Button) findViewById(getRedIdByName("pb_bt_openchannel", "id")); | ||
604 | + btSwitchAcc = (Button) findViewById(getRedIdByName("pb_bt_switchacc", "id")); | ||
605 | + btOpenBbs = (Button) findViewById(getRedIdByName("pb_bt_openbbs", "id")); | ||
606 | + btQueryProducts = findViewById(getRedIdByName("pool_query_products_id","id")); | ||
607 | + pb_bt_verifyname = (Button) findViewById(getRedIdByName("pb_bt_verifyname", "id")); | ||
608 | + | ||
609 | + txMsg = (TextView) findViewById(getRedIdByName("tx_msg", "id")); | ||
610 | + txSdkMsg = (TextView) findViewById(getRedIdByName("tx_sdk_msg", "id")); | ||
611 | + | ||
612 | + btLogin.setOnClickListener(this); | ||
613 | + btEnterGame.setOnClickListener(this); | ||
614 | + btPay.setOnClickListener(this); | ||
615 | + btLogout.setOnClickListener(this); | ||
616 | + btSubRoleInfo.setOnClickListener(this); | ||
617 | + btOpenChannel.setOnClickListener(this); | ||
618 | + btSwitchAcc.setOnClickListener(this); | ||
619 | + btOpenBbs.setOnClickListener(this); | ||
620 | + btQueryProducts.setOnClickListener(this); | ||
621 | + pb_bt_verifyname.setOnClickListener(this); | ||
622 | + } | ||
623 | + | ||
624 | + public void yaOnClick(View view) { | ||
625 | + } | ||
626 | + | ||
627 | + private void upTx(final String msg){ | ||
628 | + mContext.runOnUiThread(new Runnable() { | ||
629 | + | ||
630 | + @Override | ||
631 | + public void run() { | ||
632 | + txMsg.setText(msg); | ||
633 | + } | ||
634 | + }); | ||
635 | +// new Handler().post(new Runnable() { | ||
636 | +// | ||
637 | +// @Override | ||
638 | +// public void run() { | ||
639 | +// txMsg.setText(msg); | ||
640 | +// } | ||
641 | +// }); | ||
642 | + } | ||
624 | } | 643 | } | ... | ... |
-
Please register or login to post a comment