Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5a461feb02 | ||
![]() |
54e887e8f1 | ||
![]() |
0645e6e5de | ||
![]() |
afd146d3e8 | ||
![]() |
048609ce9c | ||
![]() |
0c6d26b3d0 | ||
![]() |
e11ccb2fb4 |
@ -10,5 +10,6 @@ key pass: 7654321Kingsome_
|
|||||||
vivo key alias: vivo
|
vivo key alias: vivo
|
||||||
oppo key alias: oppo
|
oppo key alias: oppo
|
||||||
xiaomi key alias: release
|
xiaomi key alias: release
|
||||||
|
baidu key alias: baidu
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -3,14 +3,15 @@ apply plugin: 'com.android.application'
|
|||||||
android {
|
android {
|
||||||
compileSdkVersion 28
|
compileSdkVersion 28
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "com.hnjc.wjtx.mi"
|
applicationId "com.hnjc.wjtx.g.baidu"
|
||||||
minSdkVersion 18
|
minSdkVersion 18
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
versionCode 1
|
versionCode 3
|
||||||
versionName "1.0.0"
|
versionName "1.0.3"
|
||||||
ndk {
|
ndk {
|
||||||
abiFilters 'armeabi-v7a'
|
abiFilters 'armeabi-v7a'
|
||||||
}
|
}
|
||||||
|
multiDexEnabled true
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
@ -37,6 +38,8 @@ android {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
|
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
|
||||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||||
|
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||||
|
implementation 'com.android.support:multidex:1.0.3'
|
||||||
implementation 'com.android.volley:volley:1.1.1'
|
implementation 'com.android.volley:volley:1.1.1'
|
||||||
implementation 'org.greenrobot:eventbus:3.2.0'
|
implementation 'org.greenrobot:eventbus:3.2.0'
|
||||||
}
|
}
|
||||||
|
BIN
app/libs/BaiduGameSDK_v1.6.0.3.aar
Normal file
BIN
app/libs/BaiduGameSDK_v1.6.0.3.aar
Normal file
Binary file not shown.
BIN
app/libs/msa_mdid_1.0.13.aar
Normal file
BIN
app/libs/msa_mdid_1.0.13.aar
Normal file
Binary file not shown.
BIN
app/libs/onekey_login_ssolibrary-1.0.2.aar
Normal file
BIN
app/libs/onekey_login_ssolibrary-1.0.2.aar
Normal file
Binary file not shown.
BIN
app/libs/pass-httpclient-1.4.1.2.aar
Normal file
BIN
app/libs/pass-httpclient-1.4.1.2.aar
Normal file
Binary file not shown.
BIN
app/libs/sapi-pass-core-9.1.5.aar
Normal file
BIN
app/libs/sapi-pass-core-9.1.5.aar
Normal file
Binary file not shown.
BIN
app/libs/sapi-pass-enhanced-9.1.5.aar
Normal file
BIN
app/libs/sapi-pass-enhanced-9.1.5.aar
Normal file
Binary file not shown.
BIN
app/libs/sofire-sdk-3.3.9.8.2.aar
Normal file
BIN
app/libs/sofire-sdk-3.3.9.8.2.aar
Normal file
Binary file not shown.
30
app/proguard-rules.pro
vendored
30
app/proguard-rules.pro
vendored
@ -84,8 +84,34 @@
|
|||||||
-keep class **.R$styleable{*;}
|
-keep class **.R$styleable{*;}
|
||||||
|
|
||||||
-keep class com.hnjc.wjtx.mi.** { *; }
|
-keep class com.hnjc.wjtx.mi.** { *; }
|
||||||
-dontwarn com.hnjc.wjtx.mi.**
|
-dontwarn com.hnjc.wjtx.**
|
||||||
|
|
||||||
|
|
||||||
-keep class org.egret.** { *; }
|
-keep class org.egret.** { *; }
|
||||||
-dontwarn org.egret.**
|
-dontwarn org.egret.**
|
||||||
|
|
||||||
|
-keepclassmembers public class * extends android.app.Activity {
|
||||||
|
public *;
|
||||||
|
}
|
||||||
|
-keep public class * extends android.support.v4.app.Fragment
|
||||||
|
-keep public class * extends android.app.Fragment
|
||||||
|
|
||||||
|
# 支付第三方SDK
|
||||||
|
|
||||||
|
-keep class com.tencent..** {
|
||||||
|
*;
|
||||||
|
}
|
||||||
|
-keep class com.alipay.** {
|
||||||
|
*;
|
||||||
|
}
|
||||||
|
-keep class com.baidu.** {
|
||||||
|
*;
|
||||||
|
}
|
||||||
|
-keep class com.bun.miitmdid.core.** {*;}
|
||||||
|
|
||||||
|
-dontnote com.baidu.sapi2.**
|
||||||
|
-dontwarn com.squareup.picasso.**
|
||||||
|
-dontwarn android.support.test.**
|
||||||
|
-dontwarn com.baidu.sapi2.**
|
||||||
|
-dontwarn com.alipay.**
|
||||||
|
-dontwarn com.baidu.sofire.**
|
@ -2,20 +2,40 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.hnjc.wjtx">
|
package="com.hnjc.wjtx">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||||
<uses-permission android:name="android.permission.VIBRATE" />
|
|
||||||
|
<!-- ↓↓↓ SDK ↓↓↓ -->
|
||||||
|
<uses-permission android:name="android.permission.SEND_SMS" />
|
||||||
|
<uses-permission android:name="android.permission.GET_TASKS" />
|
||||||
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||||
|
|
||||||
|
<!-- 百度PUSH 适配Android N系统必需的ContentProvider写权限声明,写权限包含应用包名 -->
|
||||||
|
<uses-permission
|
||||||
|
android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.hnjc.wjtx.g.baidu" />
|
||||||
|
<permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.hnjc.wjtx.g.baidu"
|
||||||
|
android:protectionLevel="normal" />
|
||||||
|
|
||||||
|
<supports-screens
|
||||||
|
android:anyDensity="true"
|
||||||
|
android:largeScreens="true"
|
||||||
|
android:normalScreens="true"
|
||||||
|
android:smallScreens="true" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@drawable/icon"
|
||||||
android:name=".JCApplication"
|
android:name=".JCApplication"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:usesCleartextTraffic="true"
|
android:usesCleartextTraffic="true"
|
||||||
|
android:networkSecurityConfig="@xml/network_security_config"
|
||||||
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
|
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
|
||||||
|
|
||||||
<meta-data android:name="android.max_aspect" android:value="2.2" />
|
<meta-data android:name="android.max_aspect" android:value="2.2" />
|
||||||
@ -39,19 +59,26 @@
|
|||||||
|
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<!-- <activity android:name=".MainActivity"-->
|
<meta-data android:name="android.notch_support" android:value="true"/>
|
||||||
<!-- android:launchMode="singleTask"-->
|
<!-- 适配Android P,否则系统缺少相关类会崩溃 -->
|
||||||
<!-- android:screenOrientation="portrait"-->
|
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
|
||||||
<!-- android:windowSoftInputMode="adjustPan|stateAlwaysVisible"-->
|
|
||||||
<!-- android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"-->
|
|
||||||
<!-- android:theme="@android:style/Theme.NoTitleBar.Fullscreen">-->
|
|
||||||
<!-- <intent-filter>-->
|
|
||||||
<!-- <action android:name="android.intent.action.MAIN" />-->
|
|
||||||
|
|
||||||
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
<provider
|
||||||
<!-- </intent-filter>-->
|
android:name="androidx.core.content.FileProvider"
|
||||||
<!-- </activity>-->
|
android:authorities="com.hnjc.wjtx.g.baidu.fileprovider"
|
||||||
|
android:grantUriPermissions="true"
|
||||||
|
android:exported="false">
|
||||||
|
<!--元数据-->
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
|
android:resource="@xml/provider_paths" />
|
||||||
|
</provider>
|
||||||
|
|
||||||
|
<!-- 适配Android N系统必需的ContentProvider声明,写权限包含应用包名-->
|
||||||
|
<provider android:name="com.baidu.android.pushservice.PushInfoProvider"
|
||||||
|
android:authorities="com.hnjc.wjtx.bdpush" android:exported="true"
|
||||||
|
android:protectionLevel="signature"
|
||||||
|
android:writePermission="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.hnjc.wjtx.g.baidu" />
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
27
app/src/main/java/com/hnjc/wjtx/BaseActivity.java
Normal file
27
app/src/main/java/com/hnjc/wjtx/BaseActivity.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package com.hnjc.wjtx;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import com.baidu.gamesdk.BDGameSDK;
|
||||||
|
|
||||||
|
public class BaseActivity extends Activity {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
BDGameSDK.onResume(this); // 【必接】Activity监听
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPause() {
|
||||||
|
super.onPause();
|
||||||
|
BDGameSDK.onPause(this); // 【必接】Activity监听
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,12 +1,14 @@
|
|||||||
package com.hnjc.wjtx;
|
package com.hnjc.wjtx;
|
||||||
|
|
||||||
import android.app.Application;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
public class JCApplication extends Application {
|
import androidx.multidex.MultiDexApplication;
|
||||||
|
|
||||||
|
public class JCApplication extends MultiDexApplication {
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
Log.i("JCApplication", "JCApplication onCreate");
|
Log.i("JCApplication", "JCApplication onCreate");
|
||||||
|
com.baidu.gamesdk.BDGameSDK.initApplication(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package com.hnjc.wjtx;
|
package com.hnjc.wjtx;
|
||||||
|
|
||||||
import android.Manifest;
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@ -11,7 +8,12 @@ import android.os.Message;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.baidu.gamesdk.BDGameSDK;
|
||||||
|
import com.baidu.gamesdk.BDGameSDKSetting;
|
||||||
|
import com.baidu.gamesdk.ResultCode;
|
||||||
|
import com.baidu.platformsdk.utils.PermissionUtils;
|
||||||
import com.hnjc.wjtx.net.DownloadRunnable;
|
import com.hnjc.wjtx.net.DownloadRunnable;
|
||||||
import com.hnjc.wjtx.net.TaskInfo;
|
import com.hnjc.wjtx.net.TaskInfo;
|
||||||
import com.hnjc.wjtx.net.WebApi;
|
import com.hnjc.wjtx.net.WebApi;
|
||||||
@ -23,8 +25,11 @@ import org.json.JSONException;
|
|||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class LaunchActivity extends Activity {
|
import static com.baidu.platformsdk.utils.PermissionUtils.requestRuntimePermissions;
|
||||||
|
|
||||||
|
public class LaunchActivity extends BaseActivity {
|
||||||
private final String TAG = "LaunchActivity";
|
private final String TAG = "LaunchActivity";
|
||||||
private final String ZERO_VERSION = "0";
|
private final String ZERO_VERSION = "0";
|
||||||
private ProgressBar progressBar = null;
|
private ProgressBar progressBar = null;
|
||||||
@ -53,7 +58,10 @@ public class LaunchActivity extends Activity {
|
|||||||
// 解压任务
|
// 解压任务
|
||||||
private UnzipRunnable unzipRunnable;
|
private UnzipRunnable unzipRunnable;
|
||||||
|
|
||||||
private static final String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
private static final String[] PERMISSIONS_STORAGE = {"android.permission.READ_EXTERNAL_STORAGE",
|
||||||
|
"android.permission.WRITE_EXTERNAL_STORAGE",
|
||||||
|
"android.permission.READ_PHONE_STATE"
|
||||||
|
};
|
||||||
|
|
||||||
private Handler handler = new Handler(new Handler.Callback() {
|
private Handler handler = new Handler(new Handler.Callback() {
|
||||||
@Override
|
@Override
|
||||||
@ -95,12 +103,23 @@ public class LaunchActivity extends Activity {
|
|||||||
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
int check = checkSelfPermission(permissions[0]);
|
requestRuntimePermissions(this, PERMISSIONS_STORAGE,
|
||||||
if (check != PackageManager.PERMISSION_GRANTED) {
|
new PermissionUtils.PermissionListener() {
|
||||||
requestPermissions(permissions, 111);
|
@Override
|
||||||
}
|
public void granted() {
|
||||||
|
// 权限申请通过
|
||||||
|
initBDGameSDK();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void denied(List<String> deniedList) {
|
||||||
|
Toast.makeText(LaunchActivity.this,
|
||||||
|
"获取权限失败\n请在系统设置为应用添加权限", Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
initBDGameSDK();
|
||||||
}
|
}
|
||||||
compareVersions();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -143,7 +162,7 @@ public class LaunchActivity extends Activity {
|
|||||||
*/
|
*/
|
||||||
private void getLocalVersionInfo() {
|
private void getLocalVersionInfo() {
|
||||||
String fileName = gameUrl.replace("index.html", "version.json");
|
String fileName = gameUrl.replace("index.html", "version.json");
|
||||||
String realPath = getFileDirByUrl(fileName);
|
String realPath = preloadPath + "/" + getFileDirByUrl(fileName) + "version.json" ;
|
||||||
File versionFile = new File(realPath);
|
File versionFile = new File(realPath);
|
||||||
if (versionFile.exists()) {
|
if (versionFile.exists()) {
|
||||||
JSONObject data = AssetsUtil.readJsonFromFile(this, realPath);
|
JSONObject data = AssetsUtil.readJsonFromFile(this, realPath);
|
||||||
@ -211,7 +230,7 @@ public class LaunchActivity extends Activity {
|
|||||||
}
|
}
|
||||||
// 更新远程资源
|
// 更新远程资源
|
||||||
private void preloadGame() {
|
private void preloadGame() {
|
||||||
String dir = preloadPath + getFileDirByUrl(gameUrl);
|
String dir = preloadPath + "/" + getFileDirByUrl(gameUrl);
|
||||||
File dirFile = new File(dir);
|
File dirFile = new File(dir);
|
||||||
if (!dirFile.exists()) {
|
if (!dirFile.exists()) {
|
||||||
dirFile.mkdirs();
|
dirFile.mkdirs();
|
||||||
@ -309,5 +328,35 @@ public class LaunchActivity extends Activity {
|
|||||||
// 移除activity的移出场动画
|
// 移除activity的移出场动画
|
||||||
overridePendingTransition(0, 0);
|
overridePendingTransition(0, 0);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void onRequestPermissionsResult(
|
||||||
|
int requestCode, String[] permissions, int[] grantResults) {
|
||||||
|
PermissionUtils.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
|
}
|
||||||
|
private void initBDGameSDK() { // 初始化游戏SDK
|
||||||
|
BDGameSDKSetting mBDGameSDKSetting = new BDGameSDKSetting();
|
||||||
|
mBDGameSDKSetting.setAppID(23031784); // APPID设置
|
||||||
|
mBDGameSDKSetting.setAppKey("DX7iB9hUPlSWCzA13oinUzcR"); // APPKEY设置
|
||||||
|
mBDGameSDKSetting.setMode(BDGameSDKSetting.SDKMode.ONLINE); // SDK模式默认为网游联网模式
|
||||||
|
mBDGameSDKSetting.setEnableAds(false); // 广告开关
|
||||||
|
mBDGameSDKSetting.setDomain(BDGameSDKSetting.Domain.RELEASE); // 设置为正式模式
|
||||||
|
mBDGameSDKSetting.setOrientation(BDGameSDKSetting.Orientation.PORTRAIT);
|
||||||
|
|
||||||
|
BDGameSDK.init(this, mBDGameSDKSetting, (resultCode, resultDesc, extraData) -> {
|
||||||
|
switch (resultCode) {
|
||||||
|
case ResultCode.INIT_SUCCESS:
|
||||||
|
compareVersions();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ResultCode.INIT_FAIL:
|
||||||
|
default:
|
||||||
|
Toast.makeText(LaunchActivity.this, "启动失败",
|
||||||
|
Toast.LENGTH_LONG).show();
|
||||||
|
finish();
|
||||||
|
// 初始化失败
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
package com.hnjc.wjtx;
|
package com.hnjc.wjtx;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
@ -16,8 +14,10 @@ import android.widget.FrameLayout;
|
|||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.baidu.gamesdk.BDGameSDK;
|
||||||
|
import com.baidu.gamesdk.ResultCode;
|
||||||
|
import com.baidu.platformsdk.PayOrderInfo;
|
||||||
import com.hnjc.wjtx.util.AssetsUtil;
|
import com.hnjc.wjtx.util.AssetsUtil;
|
||||||
import com.hnjc.wjtx.util.IdUtil;
|
|
||||||
import com.hnjc.wjtx.util.StorageUtil;
|
import com.hnjc.wjtx.util.StorageUtil;
|
||||||
import com.hnjc.wjtx.util.StringUtil;
|
import com.hnjc.wjtx.util.StringUtil;
|
||||||
|
|
||||||
@ -27,13 +27,14 @@ import org.json.JSONObject;
|
|||||||
|
|
||||||
//Android项目发布设置详见doc目录下的README_ANDROID.md
|
//Android项目发布设置详见doc目录下的README_ANDROID.md
|
||||||
|
|
||||||
public class MainActivity extends Activity {
|
public class MainActivity extends BaseActivity {
|
||||||
private final String TAG = "MainActivity";
|
private final String TAG = "MainActivity";
|
||||||
private EgretNativeAndroid nativeAndroid;
|
private EgretNativeAndroid nativeAndroid;
|
||||||
private ImageView launchScreenImageView = null;
|
private ImageView launchScreenImageView = null;
|
||||||
private FrameLayout rootLayout = null;
|
private FrameLayout rootLayout = null;
|
||||||
private Vibrator vibrator;
|
private Vibrator vibrator;
|
||||||
|
private String uid;
|
||||||
|
private String token;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -69,6 +70,15 @@ public class MainActivity extends Activity {
|
|||||||
rootLayout = nativeAndroid.getRootFrameLayout();
|
rootLayout = nativeAndroid.getRootFrameLayout();
|
||||||
showLoadingView();
|
showLoadingView();
|
||||||
vibrator = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);
|
vibrator = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);
|
||||||
|
setSuspendWindowChangeAccountListener(); // 【必接】设置切换账号事件监听(个人中心界面切换账号)
|
||||||
|
|
||||||
|
setSessionInvalidListener(); // 【选接】设置会话失效监听
|
||||||
|
|
||||||
|
BDGameSDK.showFloatView(this); // 【选接,建议接】显示悬浮窗
|
||||||
|
|
||||||
|
setAntiAddictionListener(); // 【必接】防沉迷相关设置
|
||||||
|
|
||||||
|
BDGameSDK.queryGameUpdateInfo(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -86,19 +96,10 @@ public class MainActivity extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onKeyDown(final int keyCode, final KeyEvent keyEvent) {
|
public boolean onKeyDown(final int keyCode, final KeyEvent keyEvent) {
|
||||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||||
//声明并初始化弹出对象
|
BDGameSDK.gameExit(this, () -> {
|
||||||
AlertDialog.Builder builder=new AlertDialog.Builder(this);
|
|
||||||
builder.setTitle("提示:");
|
|
||||||
builder.setMessage("是否退出");
|
|
||||||
//设置确认按钮
|
|
||||||
builder.setNegativeButton("确定", (dialog, which) -> {
|
|
||||||
nativeAndroid.exitGame();
|
nativeAndroid.exitGame();
|
||||||
finish();//退出程序
|
finish();
|
||||||
});
|
});
|
||||||
//设置取消按钮
|
|
||||||
builder.setPositiveButton("取消",null);
|
|
||||||
//显示弹框
|
|
||||||
builder.show();
|
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return super.onKeyDown(keyCode, keyEvent);
|
return super.onKeyDown(keyCode, keyEvent);
|
||||||
@ -163,19 +164,7 @@ public class MainActivity extends Activity {
|
|||||||
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
|
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
|
||||||
});
|
});
|
||||||
nativeAndroid.setExternalInterface("getUid", message -> {
|
nativeAndroid.setExternalInterface("getUid", message -> {
|
||||||
//TODO: 平台的登陆
|
login();
|
||||||
JSONObject obj = new JSONObject();
|
|
||||||
try {
|
|
||||||
obj.put("openid", IdUtil.getUid(this));
|
|
||||||
obj.put("token", "");
|
|
||||||
// 如果其他登陆过程中的错误, 则传入一个大于0的errorcode
|
|
||||||
obj.put("errorcode", 1);
|
|
||||||
nativeAndroid.callExternalInterface("sendUidToJS", obj.toString());
|
|
||||||
} catch (JSONException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
nativeAndroid.callExternalInterface("loginCancel", "");
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
});
|
||||||
nativeAndroid.setExternalInterface("@onState", message -> {
|
nativeAndroid.setExternalInterface("@onState", message -> {
|
||||||
Log.e(TAG, "Get @onState: " + message);
|
Log.e(TAG, "Get @onState: " + message);
|
||||||
@ -193,20 +182,50 @@ public class MainActivity extends Activity {
|
|||||||
// 支付
|
// 支付
|
||||||
nativeAndroid.setExternalInterface("pay", message -> {
|
nativeAndroid.setExternalInterface("pay", message -> {
|
||||||
|
|
||||||
|
Log.i(TAG, "begin pay: " + message);
|
||||||
try {
|
try {
|
||||||
JSONObject jsonObject = new JSONObject(message);
|
JSONObject jsonObject = new JSONObject(message);
|
||||||
String cpOrderId = jsonObject.getString("orderId");
|
|
||||||
String productCode = jsonObject.getString("productCode");
|
PayOrderInfo payOrderInfo = new PayOrderInfo();
|
||||||
int count = jsonObject.getInt("count");
|
payOrderInfo.setCooperatorOrderSerial(jsonObject.getString("cooperatorOrderSerial"));
|
||||||
//TODO: 平台的支付
|
payOrderInfo.setProductName(jsonObject.getString("productName"));
|
||||||
JSONObject obj = new JSONObject();
|
payOrderInfo.setTotalPriceCent(jsonObject.getLong("totalPriceCent")); // 以分为单位
|
||||||
try {
|
payOrderInfo.setRatio(jsonObject.getInt("ratio"));
|
||||||
obj.put("errcode", 0);
|
payOrderInfo.setExtInfo(jsonObject.getString("extInfo")); // 该字段将会在支付成功后原样返回给CP(不超过500个字符)
|
||||||
obj.put("errmsg", "");
|
payOrderInfo.setCpUid(jsonObject.getString("uid")); // 必传字段,需要验证uid是否合法,此字段必须是登陆后或者切换账号后保存的uid
|
||||||
nativeAndroid.callExternalInterface("payResult", obj.toString());
|
// if (isPayToBaidu) {
|
||||||
} catch (JSONException e) {
|
// payOrderInfo.isPurchaseBaiduGoods = "true";
|
||||||
e.printStackTrace();
|
// }
|
||||||
}
|
BDGameSDK.pay(MainActivity.this, payOrderInfo, null,
|
||||||
|
(resultCode, resultDesc, extraData) -> {
|
||||||
|
// alertDialog.cancel();
|
||||||
|
JSONObject obj = new JSONObject();
|
||||||
|
try {
|
||||||
|
obj.put("errcode", resultCode);
|
||||||
|
String resultStr = "";
|
||||||
|
switch (resultCode) {
|
||||||
|
case ResultCode.PAY_SUCCESS: // 支付成功
|
||||||
|
resultStr = "支付成功:" + resultDesc;
|
||||||
|
break;
|
||||||
|
case ResultCode.PAY_CANCEL: // 订单支付取消
|
||||||
|
resultStr = "取消支付";
|
||||||
|
break;
|
||||||
|
case ResultCode.PAY_FAIL: // 订单支付失败
|
||||||
|
resultStr = "支付失败:" + resultDesc;
|
||||||
|
break;
|
||||||
|
case ResultCode.PAY_SUBMIT_ORDER: // 订单已经提交,支付结果未知(比如:已经请求了,但是查询超时)
|
||||||
|
resultStr = "订单已经提交,支付结果未知";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
resultStr = "订单已经提交,支付结果未知";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
obj.put("errmsg", resultStr);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
nativeAndroid.callExternalInterface("payResult", obj.toString());
|
||||||
|
});
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch ( Exception e ) {
|
} catch ( Exception e ) {
|
||||||
@ -230,6 +249,28 @@ public class MainActivity extends Activity {
|
|||||||
*/
|
*/
|
||||||
nativeAndroid.setExternalInterface("reportRoleInfo", message -> {
|
nativeAndroid.setExternalInterface("reportRoleInfo", message -> {
|
||||||
Log.i(TAG, "Get reportRoleInfo: " + message);
|
Log.i(TAG, "Get reportRoleInfo: " + message);
|
||||||
|
//
|
||||||
|
// 上报玩家游戏角色信息Json串,格式为:{
|
||||||
|
// "nick":"昵称",
|
||||||
|
// "role":"角色名",
|
||||||
|
// "region":"(游戏)大区",
|
||||||
|
// "server":"(游戏)服",
|
||||||
|
// "level":"角色等级",
|
||||||
|
// "power":"玩家战力值"
|
||||||
|
// }
|
||||||
|
JSONObject data = new JSONObject();
|
||||||
|
try {
|
||||||
|
JSONObject obj = new JSONObject(message);
|
||||||
|
data.put("nick", obj.getString("userRoleName"));
|
||||||
|
data.put("role", obj.getString("userRoleName"));
|
||||||
|
data.put("region", obj.getString("serverName"));
|
||||||
|
data.put("server", obj.getString("serverId"));
|
||||||
|
data.put("level", obj.getInt("userRoleLevel"));
|
||||||
|
data.put("power", obj.getString("gameRolePower"));
|
||||||
|
BDGameSDK.reportUserData(data.toString());
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,6 +279,12 @@ public class MainActivity extends Activity {
|
|||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void finish() {
|
||||||
|
super.finish();
|
||||||
|
BDGameSDK.closeFloatView(this); // 关闭悬浮窗
|
||||||
|
}
|
||||||
|
|
||||||
private void showLoadingView() {
|
private void showLoadingView() {
|
||||||
launchScreenImageView = new ImageView(this);
|
launchScreenImageView = new ImageView(this);
|
||||||
launchScreenImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
launchScreenImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||||
@ -266,4 +313,120 @@ public class MainActivity extends Activity {
|
|||||||
launchScreenImageView = null;
|
launchScreenImageView = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setSuspendWindowChangeAccountListener() { // 设置切换账号事件监听(个人中心界面切换账号)
|
||||||
|
BDGameSDK.setSuspendWindowChangeAccountListener(MainActivity.this,
|
||||||
|
(resultCode, resultDesc, extraData) -> {
|
||||||
|
switch (resultCode) {
|
||||||
|
case ResultCode.LOGIN_SUCCESS:
|
||||||
|
// 登录成功,不管之前是什么登录状态,游戏内部都要切换成新的用户
|
||||||
|
uid = BDGameSDK.getLoginUid();
|
||||||
|
token = BDGameSDK.getLoginAccessToken();
|
||||||
|
nativeAndroid.callExternalInterface("changeAccount", "");
|
||||||
|
// 切换账号成功后必须更新uid给调用支付api使用
|
||||||
|
// Toast.makeText(getApplicationContext(),
|
||||||
|
// "登录成功",
|
||||||
|
// Toast.LENGTH_LONG).show();
|
||||||
|
break;
|
||||||
|
case ResultCode.LOGIN_FAIL:
|
||||||
|
// 登录失败,游戏内部之前如果是已经登录的,要清除自己记录的登录状态,设置成未登录。如果之前未登录,不用处理。
|
||||||
|
Toast.makeText(getApplicationContext(), "登录失败", Toast.LENGTH_LONG).show();
|
||||||
|
if (null != uid && null != token) {
|
||||||
|
uid = null;
|
||||||
|
token = null;
|
||||||
|
nativeAndroid.callExternalInterface("loginOut", "");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ResultCode.LOGIN_CANCEL:
|
||||||
|
// 取消,操作前后的登录状态没变化
|
||||||
|
Toast.makeText(getApplicationContext(), "登录取消",
|
||||||
|
Toast.LENGTH_LONG).show();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// 此时当登录失败处理,参照ResultCode.LOGIN_FAIL(正常情况下不会到这个步骤,除非SDK内部异常)
|
||||||
|
Toast.makeText(getApplicationContext(), "登录失败",
|
||||||
|
Toast.LENGTH_LONG).show();
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 监听session失效时重新登录
|
||||||
|
*/
|
||||||
|
private void setSessionInvalidListener() {
|
||||||
|
BDGameSDK.setSessionInvalidListener((resultCode, resultDesc, extraData) -> {
|
||||||
|
if (resultCode == ResultCode.SESSION_INVALID) {
|
||||||
|
// 会话失效,开发者需要重新登录或者重启游戏
|
||||||
|
// login();
|
||||||
|
nativeAndroid.callExternalInterface("loginOut", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 登录
|
||||||
|
*/
|
||||||
|
private void login() {
|
||||||
|
if (null != uid && null != token) {
|
||||||
|
JSONObject obj = new JSONObject();
|
||||||
|
try {
|
||||||
|
obj.put("openid", uid);
|
||||||
|
obj.put("token", token);
|
||||||
|
nativeAndroid.callExternalInterface("sendUidToJS", obj.toString());
|
||||||
|
return;
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BDGameSDK.login((resultCode, resultDesc, extraData) -> {
|
||||||
|
Log.d("login", "this resultCode is " + resultCode);
|
||||||
|
switch (resultCode) {
|
||||||
|
case ResultCode.LOGIN_SUCCESS: {
|
||||||
|
BDGameSDK.queryLoginUserAuthenticateState(
|
||||||
|
getApplicationContext(), (resultCode1, resultDesc1, extraData1) -> {
|
||||||
|
|
||||||
|
Log.i("LoginUserAuth",
|
||||||
|
"resultCode" + resultCode1 + "==" + extraData1);
|
||||||
|
Log.i("login", BDGameSDK.getLoginAccessToken());
|
||||||
|
Log.i("login", "login sucess");
|
||||||
|
uid = BDGameSDK.getLoginUid();
|
||||||
|
token = BDGameSDK.getLoginAccessToken();
|
||||||
|
JSONObject obj = new JSONObject();
|
||||||
|
try {
|
||||||
|
obj.put("openid", uid);
|
||||||
|
obj.put("token", token);
|
||||||
|
// 如果其他登陆过程中的错误, 则传入一个大于0的errorcode
|
||||||
|
nativeAndroid.callExternalInterface("sendUidToJS", obj.toString());
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
nativeAndroid.callExternalInterface("loginCancel", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ResultCode.LOGIN_CANCEL: {
|
||||||
|
nativeAndroid.callExternalInterface("loginCancel", "取消登陆");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ResultCode.LOGIN_FAIL:
|
||||||
|
default: {
|
||||||
|
nativeAndroid.callExternalInterface("loginCancel", "登陆失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAntiAddictionListener() {
|
||||||
|
|
||||||
|
// [必接]设置防沉迷系统回调,如果用户在线时长累计超过规定值,会触发该回调
|
||||||
|
BDGameSDK.setAntiAddictionListener((resultCode, resultDesc, extraData) -> {
|
||||||
|
//默认直接弹出游玩超时警告弹窗退出游戏,厂商也可以根据自己需要进行自己的防沉迷设计
|
||||||
|
BDGameSDK.forceCloseDialog(MainActivity.this);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ public class WebApi {
|
|||||||
|
|
||||||
public void getVersionInfo(BaseInterface iFace) {
|
public void getVersionInfo(BaseInterface iFace) {
|
||||||
this.mInterface = iFace;
|
this.mInterface = iFace;
|
||||||
// String versionUrl = "http://10.0.1.3:7021/game/zip/version.json";
|
// String versionUrl = "https://test.kingsome.cn/wjtx/config/version_native.json";
|
||||||
String versionUrl = "https://h5games-al.kingsome.cn/wjtx/config/version_native.json";
|
String versionUrl = "https://h5games-al.kingsome.cn/wjtx/config/version_native.json";
|
||||||
AppRequestUtil.getInstance().getRequest(context, versionUrl, new RequestListener() {
|
AppRequestUtil.getInstance().getRequest(context, versionUrl, new RequestListener() {
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import org.json.JSONObject;
|
|||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -187,12 +188,15 @@ public class AssetsUtil {
|
|||||||
*/
|
*/
|
||||||
public static String readFromFile(Context context, String path) {
|
public static String readFromFile(Context context, String path) {
|
||||||
try {
|
try {
|
||||||
InputStreamReader inputReader = new InputStreamReader(context.openFileInput(path));
|
FileInputStream fileInputStream = new FileInputStream(new File(path));
|
||||||
|
InputStreamReader inputReader = new InputStreamReader(fileInputStream);
|
||||||
BufferedReader bufReader = new BufferedReader(inputReader);
|
BufferedReader bufReader = new BufferedReader(inputReader);
|
||||||
|
|
||||||
String line="";
|
String line="";
|
||||||
StringBuilder result= new StringBuilder();
|
StringBuilder result= new StringBuilder();
|
||||||
while((line = bufReader.readLine()) != null)
|
while((line = bufReader.readLine()) != null)
|
||||||
result.append(line);
|
result.append(line);
|
||||||
|
fileInputStream.close();
|
||||||
inputReader.close();
|
inputReader.close();
|
||||||
bufReader.close();
|
bufReader.close();
|
||||||
return result.toString();
|
return result.toString();
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 351 KiB |
@ -3,7 +3,7 @@
|
|||||||
<string name="load_game">下载游戏资源</string>
|
<string name="load_game">下载游戏资源</string>
|
||||||
<string name="start_game">进入游戏</string>
|
<string name="start_game">进入游戏</string>
|
||||||
<string name="preload_path">preload</string>
|
<string name="preload_path">preload</string>
|
||||||
<string name="game_url">http://local/index.html?channel=7103</string>
|
<string name="game_url">http://local/index.html?channel=7107</string>
|
||||||
<string name="local_version">1.0.0</string>
|
<string name="local_version">1.0.0</string>
|
||||||
<string name="load_back">load_back</string>
|
<string name="load_back">load_back</string>
|
||||||
<string name="launch_version">获取游戏版本</string>
|
<string name="launch_version">获取游戏版本</string>
|
||||||
|
4
app/src/main/res/xml/network_security_config.xml
Normal file
4
app/src/main/res/xml/network_security_config.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<network-security-config>
|
||||||
|
<base-config cleartextTrafficPermitted="true" />
|
||||||
|
</network-security-config>
|
BIN
key/publish_key
BIN
key/publish_key
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user