提交 | 用户 | 时间
|
8871a7
|
1 |
<?xml version="1.0" encoding="utf-8"?> |
L |
2 |
<!--GearVR plugin additions--> |
|
3 |
<root xmlns:android="http://schemas.android.com/apk/res/android"> |
|
4 |
<!-- init section is always evaluated once per architecture --> |
|
5 |
<trace enable="true"/> |
|
6 |
<init> |
|
7 |
<log text="Taptap APL init"/> |
|
8 |
</init> |
|
9 |
<proguardAdditions> |
|
10 |
<insert> |
|
11 |
-keep public class com.tds.common.** {*;} |
|
12 |
-keep public class com.tapsdk.** {*;} |
|
13 |
-keep class com.tds.** {*;} |
|
14 |
|
|
15 |
# proguard.cfg |
|
16 |
|
|
17 |
-keepattributes Signature |
|
18 |
-dontwarn com.jcraft.jzlib.** |
|
19 |
-keep class com.jcraft.jzlib.** { *;} |
|
20 |
|
|
21 |
-dontwarn sun.misc.** |
|
22 |
-keep class sun.misc.** { *;} |
|
23 |
|
|
24 |
-dontwarn com.alibaba.fastjson.** |
|
25 |
-keep class com.alibaba.fastjson.** { *;} |
|
26 |
|
|
27 |
-dontwarn org.ligboy.retrofit2.** |
|
28 |
-keep class org.ligboy.retrofit2.** { *;} |
|
29 |
|
|
30 |
-dontwarn io.reactivex.rxjava2.** |
|
31 |
-keep class io.reactivex.rxjava2.** { *;} |
|
32 |
|
|
33 |
-dontwarn sun.security.** |
|
34 |
-keep class sun.security.** { *; } |
|
35 |
|
|
36 |
-dontwarn com.google.** |
|
37 |
-keep class com.google.** { *;} |
|
38 |
|
|
39 |
-dontwarn com.avos.** |
|
40 |
-keep class com.avos.** { *;} |
|
41 |
|
|
42 |
-dontwarn cn.leancloud.** |
|
43 |
-keep class cn.leancloud.** { *;} |
|
44 |
|
|
45 |
-keep public class android.net.http.SslError |
|
46 |
-keep public class android.webkit.WebViewClient |
|
47 |
|
|
48 |
-dontwarn android.webkit.WebView |
|
49 |
-dontwarn android.net.http.SslError |
|
50 |
-dontwarn android.webkit.WebViewClient |
|
51 |
|
|
52 |
-dontwarn android.support.** |
|
53 |
|
|
54 |
-dontwarn org.apache.** |
|
55 |
-keep class org.apache.** { *;} |
|
56 |
|
|
57 |
-dontwarn org.jivesoftware.smack.** |
|
58 |
-keep class org.jivesoftware.smack.** { *;} |
|
59 |
|
|
60 |
-dontwarn com.loopj.** |
|
61 |
-keep class com.loopj.** { *;} |
|
62 |
|
|
63 |
-dontwarn com.squareup.okhttp.** |
|
64 |
-keep class com.squareup.okhttp.** { *;} |
|
65 |
-keep interface com.squareup.okhttp.** { *; } |
|
66 |
|
|
67 |
-dontwarn okio.** |
|
68 |
|
|
69 |
-dontwarn org.xbill.** |
|
70 |
-keep class org.xbill.** { *;} |
|
71 |
|
|
72 |
-keepattributes *Annotation* |
|
73 |
|
|
74 |
</insert> |
|
75 |
</proguardAdditions> |
|
76 |
<androidManifestUpdates> |
|
77 |
|
|
78 |
<!-- |
|
79 |
旧版 Android 额外配置 |
|
80 |
如果 targetSdkVersion < 29,还需要添加如下配置: |
|
81 |
--> |
|
82 |
<!-- <addAttribute --> |
|
83 |
<!-- tag="manifest" --> |
|
84 |
<!-- name="xmlns:tools" --> |
|
85 |
<!-- value="http://schemas.android.com/tools" />--> |
|
86 |
<!-- <addAttribute --> |
|
87 |
<!-- tag="application " --> |
|
88 |
<!-- name="tools:remove" --> |
|
89 |
<!-- value="android:requestLegacyExternalStorage" />--> |
|
90 |
|
|
91 |
<!-- 广告 SDK 已添加的权限 --> |
|
92 |
<uses-permission android:name="android.permission.INTERNET"/> |
|
93 |
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> |
|
94 |
<!-- 为了获取更精准的推送数据、建议游戏加上的权限 --> |
|
95 |
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> |
|
96 |
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> |
|
97 |
<uses-permission android:name="android.permission.BLUETOOTH"/> |
|
98 |
<!-- targetVersion 31 及以上 建议游戏加上这个权限 --> |
|
99 |
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/> |
|
100 |
<!-- 为了获取更好的广告体验,建议游戏加上以下权限来获取用户信息 --> |
|
101 |
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> |
|
102 |
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> |
|
103 |
<!-- 加上下列权限可以提高广告的转化率 --> |
|
104 |
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> |
|
105 |
</androidManifestUpdates> |
|
106 |
<proguardAdditions> |
|
107 |
<insert> |
|
108 |
</insert> |
|
109 |
</proguardAdditions> |
|
110 |
|
|
111 |
<resourceCopies> |
|
112 |
<copyDir |
|
113 |
src = "$S(PluginDir)/../../ThirdParty/" |
|
114 |
dst = "$S(BuildDir)/libs/" /> |
|
115 |
|
|
116 |
<copyDir |
|
117 |
src="$S(PluginDir)/../../ThirdParty/Android/Java/" |
|
118 |
dst="$S(BuildDir)/src/com/leopard/taptap" /> |
|
119 |
</resourceCopies> |
|
120 |
<gradleCopies> |
|
121 |
</gradleCopies> |
|
122 |
|
|
123 |
<buildGradleAdditions> |
|
124 |
<insert> |
|
125 |
<![CDATA[ |
|
126 |
repositories { |
|
127 |
flatDir { |
|
128 |
dirs 'src/main/libs' |
|
129 |
} |
|
130 |
} |
|
131 |
dependencies { |
|
132 |
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' |
|
133 |
implementation 'io.reactivex.rxjava2:rxjava:2.0.1' |
|
134 |
implementation 'com.squareup.okhttp3:okhttp:3.12.1' |
|
135 |
implementation 'androidx.appcompat:appcompat:1.0.0' |
|
136 |
implementation 'androidx.annotation:annotation:1.0.0' |
|
137 |
implementation 'androidx.legacy:legacy-support-v4:1.0.0' |
|
138 |
implementation "com.github.bumptech.glide:glide:4.9.0" |
|
139 |
implementation 'com.google.android.material:material:1.0.0' |
|
140 |
implementation 'androidx.recyclerview:recyclerview:1.0.0' |
|
141 |
implementation 'androidx.constraintlayout:constraintlayout:2.1.4' |
|
142 |
implementation 'cn.leancloud:storage-android:8.2.19' // 数据存储 |
|
143 |
implementation 'cn.leancloud:realtime-android:8.2.19' // 即时通讯 |
|
144 |
implementation(name : 'TapAD_3.16.3.23', ext:'aar') |
|
145 |
implementation(name : 'TapBootstrap_3.24.0', ext:'aar') |
|
146 |
implementation(name : 'TapCommon_3.24.0', ext:'aar') |
|
147 |
implementation(name : 'TapLogin_3.24.0', ext:'aar') |
|
148 |
implementation(name : 'TapDB_3.24.0', ext:'aar') |
|
149 |
} |
|
150 |
]]> |
|
151 |
</insert> |
|
152 |
</buildGradleAdditions> |
|
153 |
|
|
154 |
<gameActivityImportAdditions> |
|
155 |
<insert> |
|
156 |
<![CDATA[ |
|
157 |
// taptap start |
|
158 |
import com.tapsdk.tapad.AdRequest; |
|
159 |
import com.tapsdk.tapad.CustomUser; |
|
160 |
import com.tapsdk.tapad.TapAdConfig; |
|
161 |
import com.tapsdk.tapad.TapAdCustomController; |
|
162 |
import com.tapsdk.tapad.TapAdLocation; |
|
163 |
import com.tapsdk.tapad.TapAdManager; |
|
164 |
import com.tapsdk.tapad.TapAdNative; |
|
165 |
import com.tapsdk.tapad.TapAdSdk; |
|
166 |
import com.tapsdk.tapad.TapRewardVideoAd; |
|
167 |
import android.util.Log; |
|
168 |
// taptap end |
|
169 |
]]> |
|
170 |
</insert> |
|
171 |
</gameActivityImportAdditions> |
|
172 |
<gameActivityClassAdditions> |
|
173 |
<insert> |
|
174 |
<![CDATA[ |
|
175 |
public native void OnActivitySaveInstanceState(); |
|
176 |
|
|
177 |
public void Logout(){ |
|
178 |
com.leopard.taptap.TapNative.Logout(); |
|
179 |
} |
|
180 |
public void TapDBTraceEvent(final String eventName,final String jsonObject) { |
|
181 |
// 委托主线程调用 |
|
182 |
runOnUiThread( |
|
183 |
new Runnable() { |
|
184 |
public void run() { |
|
185 |
com.leopard.taptap.TapNative.TapDBTraceEvent(eventName,jsonObject); |
|
186 |
} |
|
187 |
}); |
|
188 |
} |
|
189 |
public void InitTapDB( |
|
190 |
final String clientId, |
|
191 |
final String clientToken, |
|
192 |
final String serverUrl, |
|
193 |
final String gameChannel, |
|
194 |
final String gameVersion |
|
195 |
){ |
|
196 |
android.util.Log.d("Leopard","InitTapDB ==>> clientId:" + clientId + ",clientToken" + clientToken + ",serverUrl" + serverUrl); |
|
197 |
// 委托主线程调用 |
|
198 |
runOnUiThread( |
|
199 |
new Runnable() { |
|
200 |
public void run() { |
|
201 |
com.leopard.taptap.TapNative.InitTapDB(clientId,clientToken,serverUrl,gameChannel,gameVersion); |
|
202 |
} |
|
203 |
}); |
|
204 |
} |
|
205 |
|
|
206 |
public boolean CheckLogin() { |
|
207 |
return com.leopard.taptap.TapNative.CheckLogin(); |
|
208 |
} |
|
209 |
|
|
210 |
public void InitLogin(final String clientId,final String clientToken,final String serverUrl){ |
|
211 |
android.util.Log.d("Leopard","InitLoginStart ==>> clientId:" + clientId + ",clientToken" + clientToken + ",serverUrl" + serverUrl); |
|
212 |
runOnUiThread( |
|
213 |
new Runnable() { |
|
214 |
public void run() { |
|
215 |
com.leopard.taptap.TapNative.InitLogin(clientId, clientToken, serverUrl); |
|
216 |
} |
|
217 |
}); |
|
218 |
} |
|
219 |
|
|
220 |
public void Login(){ |
|
221 |
android.util.Log.d("Leopard","LoginStart"); |
|
222 |
com.leopard.taptap.TapNative.Login(); |
|
223 |
} |
|
224 |
|
|
225 |
public String GetCurrentProfile(){ |
|
226 |
android.util.Log.d("Leopard","GetCurrentProfile"); |
|
227 |
return com.leopard.taptap.TapNative.GetCurrentProfile(); |
|
228 |
} |
|
229 |
|
|
230 |
|
|
231 |
public void tapADNRequestPermissionIfNecessary() { |
|
232 |
TapAdManager.get().requestPermissionIfNecessary(this); |
|
233 |
android.util.Log.d("Leopard","RequestPermissionIfNecessary"); |
|
234 |
} |
|
235 |
|
|
236 |
public void tapADNInit( |
|
237 |
int mediaID, |
|
238 |
String mediaName, |
|
239 |
String mediaKey, |
|
240 |
boolean enableDebug, |
|
241 |
int avatarLevel |
|
242 |
) { |
|
243 |
android.util.Log.d("Leopard","tapADNInit:mediaName->" + mediaName + ",mediaKey:" + mediaKey); |
|
244 |
final TapAdConfig config = new TapAdConfig.Builder() |
|
245 |
.withMediaId(mediaID) // 必选参数。为 TapADN 注册的媒体 ID |
|
246 |
.withMediaName(mediaName) // 必选参数。为 TapADN 注册的媒体名称 |
|
247 |
.withMediaKey(mediaKey) // 必选参数。媒体密钥,可以在TapADN后台查看 |
|
248 |
.withMediaVersion("1") // 必选参数。默认值 "1" |
|
249 |
.withGameChannel("taptap2") // 必选参数,渠道 |
|
250 |
// .withTapClientId("0RiAlMny7jiz086FaU") |
|
251 |
.enableDebug(enableDebug) |
|
252 |
.withCustomController(new TapAdCustomController() { |
|
253 |
@Override |
|
254 |
public boolean isCanUseLocation() { |
|
255 |
return true; |
|
256 |
} |
|
257 |
|
|
258 |
@Override |
|
259 |
public TapAdLocation getTapAdLocation() { |
|
260 |
double longitude = 0; |
|
261 |
double latitude = 0; |
|
262 |
double accuracy = 0; |
|
263 |
return new TapAdLocation(longitude, latitude, accuracy); |
|
264 |
} |
|
265 |
|
|
266 |
@Override |
|
267 |
public boolean isCanUsePhoneState() { |
|
268 |
return super.isCanUsePhoneState(); |
|
269 |
} |
|
270 |
|
|
271 |
@Override |
|
272 |
public String getDevImei() { |
|
273 |
return super.getDevImei(); |
|
274 |
} |
|
275 |
|
|
276 |
@Override |
|
277 |
public boolean isCanUseWifiState() { |
|
278 |
return super.isCanUseWifiState(); |
|
279 |
} |
|
280 |
|
|
281 |
@Override |
|
282 |
public boolean isCanUseWriteExternal() { |
|
283 |
return super.isCanUseWriteExternal(); |
|
284 |
} |
|
285 |
|
|
286 |
@Override |
|
287 |
public String getDevOaid() { |
|
288 |
// if (inputOaidEditText != null && inputOaidEditText.getText() != null) { |
|
289 |
// return inputOaidEditText.getText().toString(); |
|
290 |
// } |
|
291 |
return "asdf12345"; |
|
292 |
} |
|
293 |
|
|
294 |
@Override |
|
295 |
public boolean alist() { |
|
296 |
return super.alist(); |
|
297 |
} |
|
298 |
|
|
299 |
@Override |
|
300 |
public boolean isCanUseAndroidId() { |
|
301 |
return true; |
|
302 |
} |
|
303 |
|
|
304 |
@Override |
|
305 |
public CustomUser provideCustomUser() { |
|
306 |
return new CustomUser.Builder() |
|
307 |
.withRealAge(1) // 年龄 |
|
308 |
.withRealSex(1) // 性别 0:男 1:女 |
|
309 |
.withAvatarSex(1) // 角色性别 0:男 1:女 |
|
310 |
.withAvatarLevel(1) // 角色等级 |
|
311 |
.withNewUserStatus(1) // 是否新玩家 0:否;1:是 |
|
312 |
.withPayedUserStatus(0) // 是否付费用户 0:否;1:是 |
|
313 |
.withBeginMissionFinished(1) // 是否通过新手教程 0:否 1:是 |
|
314 |
.withAvatarPayedToolCnt(0) // 角色当前付费道具数量 |
|
315 |
.build(); |
|
316 |
} |
|
317 |
}) |
|
318 |
.build(); |
|
319 |
TapAdSdk.init(this,config); |
|
320 |
android.util.Log.d("Leopard","TapAdSdkInitOver"); |
|
321 |
} |
|
322 |
|
|
323 |
public TapAdNative tapAdNative; |
|
324 |
public TapRewardVideoAd lastTapRewardVideoAd; |
|
325 |
public native void nativeRewardRequestOver(); |
|
326 |
public boolean isRewardCached(){ |
|
327 |
return lastTapRewardVideoAd != null; |
|
328 |
} |
|
329 |
public void tapADNRequestRewardAD( |
|
330 |
int spaceID, // 广告后台获取广告位id |
|
331 |
String rewardName, // 奖品名称 |
|
332 |
int rewardAmount // 奖品数量 |
|
333 |
){ |
|
334 |
android.util.Log.e("Leopard","tapADNInit:spaceID->" + spaceID); |
|
335 |
tapAdNative = TapAdManager.get().createAdNative(this); |
|
336 |
AdRequest adRequest = new AdRequest.Builder() |
|
337 |
.withSpaceId(spaceID) |
|
338 |
.withExtra1("{}") |
|
339 |
.withUserId("123") |
|
340 |
.withRewordName(rewardName) |
|
341 |
.withRewordAmount(rewardAmount) |
|
342 |
.build(); |
|
343 |
tapAdNative.loadRewardVideoAd(adRequest, new TapAdNative.RewardVideoAdListener() { |
|
344 |
@Override |
|
345 |
public void onError(int code, String message) { |
|
346 |
android.util.Log.e("Leopard","广告获取失败" + message); |
|
347 |
} |
|
348 |
|
|
349 |
@Override |
|
350 |
public void onRewardVideoAdLoad(TapRewardVideoAd rewardVideoAd) { |
|
351 |
tapADNPlayRewardAD(); |
|
352 |
} |
|
353 |
|
|
354 |
@Override |
|
355 |
public void onRewardVideoCached(TapRewardVideoAd rewardVideoAd) { |
|
356 |
android.util.Log.d("Leopard","广告获取成功"); |
|
357 |
lastTapRewardVideoAd = rewardVideoAd; |
|
358 |
GameActivity.this.nativeRewardRequestOver(); |
|
359 |
} |
|
360 |
}); |
|
361 |
} |
|
362 |
public native void nativeRewardAdPlayOver(); |
|
363 |
public void tapADNPlayRewardAD(){ |
|
364 |
if (lastTapRewardVideoAd != null){ |
|
365 |
lastTapRewardVideoAd.setRewardAdInteractionListener(new TapRewardVideoAd.RewardAdInteractionListener() { |
|
366 |
@Override |
|
367 |
public void onAdShow() { |
|
368 |
// 激励广告已显示 |
|
369 |
} |
|
370 |
|
|
371 |
@Override |
|
372 |
public void onAdClose() { |
|
373 |
// 激励广告已经关闭 |
|
374 |
} |
|
375 |
|
|
376 |
@Override |
|
377 |
public void onVideoComplete() { |
|
378 |
// 视频播放结束 |
|
379 |
} |
|
380 |
|
|
381 |
@Override |
|
382 |
public void onVideoError() { |
|
383 |
// 视频出错 |
|
384 |
} |
|
385 |
|
|
386 |
@Override |
|
387 |
public void onRewardVerify(boolean rewardVerify, int rewardAmount, String rewardName, int code, String msg) { |
|
388 |
// 激励任务已完成,游戏可以选择在此时进行玩家奖励,或者进一步通过 s2s 的流程来确认是否可以对当前玩家发放奖励 |
|
389 |
android.util.Log.d("Leopard","广告播放完毕!"); |
|
390 |
GameActivity.this.nativeRewardAdPlayOver(); |
|
391 |
} |
|
392 |
|
|
393 |
@Override |
|
394 |
public void onSkippedVideo() { |
|
395 |
// 激励广告中玩家点击了跳过视频的按钮 |
|
396 |
} |
|
397 |
}); |
|
398 |
lastTapRewardVideoAd.showRewardVideoAd(this); |
|
399 |
} |
|
400 |
else{ |
|
401 |
android.util.Log.e("Leopard","没有缓存任何的广告"); |
|
402 |
} |
|
403 |
} |
|
404 |
]]> |
|
405 |
</insert> |
|
406 |
</gameActivityClassAdditions> |
|
407 |
|
|
408 |
<gameActivityOnCreateAdditions> |
|
409 |
<insert> |
|
410 |
<![CDATA[ |
|
411 |
com.leopard.taptap.TapNative.Init(this); |
|
412 |
]]> |
|
413 |
</insert> |
|
414 |
</gameActivityOnCreateAdditions> |
|
415 |
<gameActivityOnSaveInstanceStateAdditions> |
|
416 |
<insert> |
|
417 |
<![CDATA[ |
|
418 |
OnActivitySaveInstanceState(); |
|
419 |
android.util.Log.d("Leopard","OnActivitySaveInstanceState"); |
|
420 |
]]> |
|
421 |
</insert> |
|
422 |
</gameActivityOnSaveInstanceStateAdditions> |
|
423 |
</root> |