Compare commits

...

7 Commits

Author SHA1 Message Date
zhl
5a461feb02 更新baidu的版本号 2021-01-18 12:49:24 +08:00
zhl
54e887e8f1 修正热更无法正常运行的bug 2020-12-23 20:03:02 +08:00
zhl
0645e6e5de 更新release的key 2020-12-01 10:01:14 +08:00
zhl
afd146d3e8 移除todo 2020-11-30 17:50:19 +08:00
zhl
048609ce9c 修改百度icon, 完善百度相关必接的玩意 2020-11-30 17:48:10 +08:00
zhl
0c6d26b3d0 调通百度支付 2020-11-30 16:44:17 +08:00
zhl
e11ccb2fb4 添加baidu相关代码 2020-11-27 14:59:24 +08:00
21 changed files with 382 additions and 76 deletions

View File

@ -10,5 +10,6 @@ key pass: 7654321Kingsome_
vivo key alias: vivo
oppo key alias: oppo
xiaomi key alias: release
baidu key alias: baidu
```

View File

@ -3,14 +3,15 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.hnjc.wjtx.mi"
applicationId "com.hnjc.wjtx.g.baidu"
minSdkVersion 18
targetSdkVersion 28
versionCode 1
versionName "1.0.0"
versionCode 3
versionName "1.0.3"
ndk {
abiFilters 'armeabi-v7a'
}
multiDexEnabled true
}
buildTypes {
release {
@ -37,6 +38,8 @@ android {
dependencies {
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
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 'org.greenrobot:eventbus:3.2.0'
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -84,8 +84,34 @@
-keep class **.R$styleable{*;}
-keep class com.hnjc.wjtx.mi.** { *; }
-dontwarn com.hnjc.wjtx.mi.**
-dontwarn com.hnjc.wjtx.**
-keep class 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.**

View File

@ -2,20 +2,40 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
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.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<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_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
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:icon="@drawable/icon"
android:name=".JCApplication"
android:label="@string/app_name"
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
<meta-data android:name="android.max_aspect" android:value="2.2" />
@ -39,19 +59,26 @@
</activity>
<!-- <activity android:name=".MainActivity"-->
<!-- android:launchMode="singleTask"-->
<!-- android:screenOrientation="portrait"-->
<!-- 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" />-->
<meta-data android:name="android.notch_support" android:value="true"/>
<!-- 适配Android P否则系统缺少相关类会崩溃 -->
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
<!-- </activity>-->
<provider
android:name="androidx.core.content.FileProvider"
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>
</manifest>

View 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监听
}
}

View File

@ -1,12 +1,14 @@
package com.hnjc.wjtx;
import android.app.Application;
import android.util.Log;
public class JCApplication extends Application {
import androidx.multidex.MultiDexApplication;
public class JCApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
Log.i("JCApplication", "JCApplication onCreate");
com.baidu.gamesdk.BDGameSDK.initApplication(this);
}
}

View File

@ -1,9 +1,6 @@
package com.hnjc.wjtx;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@ -11,7 +8,12 @@ import android.os.Message;
import android.util.Log;
import android.widget.ProgressBar;
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.TaskInfo;
import com.hnjc.wjtx.net.WebApi;
@ -23,8 +25,11 @@ import org.json.JSONException;
import org.json.JSONObject;
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 ZERO_VERSION = "0";
private ProgressBar progressBar = null;
@ -53,7 +58,10 @@ public class LaunchActivity extends Activity {
// 解压任务
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() {
@Override
@ -95,12 +103,23 @@ public class LaunchActivity extends Activity {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int check = checkSelfPermission(permissions[0]);
if (check != PackageManager.PERMISSION_GRANTED) {
requestPermissions(permissions, 111);
requestRuntimePermissions(this, PERMISSIONS_STORAGE,
new PermissionUtils.PermissionListener() {
@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() {
String fileName = gameUrl.replace("index.html", "version.json");
String realPath = getFileDirByUrl(fileName);
String realPath = preloadPath + "/" + getFileDirByUrl(fileName) + "version.json" ;
File versionFile = new File(realPath);
if (versionFile.exists()) {
JSONObject data = AssetsUtil.readJsonFromFile(this, realPath);
@ -211,7 +230,7 @@ public class LaunchActivity extends Activity {
}
// 更新远程资源
private void preloadGame() {
String dir = preloadPath + getFileDirByUrl(gameUrl);
String dir = preloadPath + "/" + getFileDirByUrl(gameUrl);
File dirFile = new File(dir);
if (!dirFile.exists()) {
dirFile.mkdirs();
@ -309,5 +328,35 @@ public class LaunchActivity extends Activity {
// 移除activity的移出场动画
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();
// 初始化失败
}
});
}
}

View File

@ -1,7 +1,5 @@
package com.hnjc.wjtx;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
@ -16,8 +14,10 @@ import android.widget.FrameLayout;
import android.widget.ImageView;
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.IdUtil;
import com.hnjc.wjtx.util.StorageUtil;
import com.hnjc.wjtx.util.StringUtil;
@ -27,13 +27,14 @@ import org.json.JSONObject;
//Android项目发布设置详见doc目录下的README_ANDROID.md
public class MainActivity extends Activity {
public class MainActivity extends BaseActivity {
private final String TAG = "MainActivity";
private EgretNativeAndroid nativeAndroid;
private ImageView launchScreenImageView = null;
private FrameLayout rootLayout = null;
private Vibrator vibrator;
private String uid;
private String token;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -69,6 +70,15 @@ public class MainActivity extends Activity {
rootLayout = nativeAndroid.getRootFrameLayout();
showLoadingView();
vibrator = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);
setSuspendWindowChangeAccountListener(); // 必接设置切换账号事件监听个人中心界面切换账号
setSessionInvalidListener(); // 选接设置会话失效监听
BDGameSDK.showFloatView(this); // 选接,建议接显示悬浮窗
setAntiAddictionListener(); // 必接防沉迷相关设置
BDGameSDK.queryGameUpdateInfo(this);
}
@Override
@ -86,19 +96,10 @@ public class MainActivity extends Activity {
@Override
public boolean onKeyDown(final int keyCode, final KeyEvent keyEvent) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//声明并初始化弹出对象
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("提示:");
builder.setMessage("是否退出");
//设置确认按钮
builder.setNegativeButton("确定", (dialog, which) -> {
BDGameSDK.gameExit(this, () -> {
nativeAndroid.exitGame();
finish();//退出程序
finish();
});
//设置取消按钮
builder.setPositiveButton("取消",null);
//显示弹框
builder.show();
return true;
} else {
return super.onKeyDown(keyCode, keyEvent);
@ -163,19 +164,7 @@ public class MainActivity extends Activity {
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
});
nativeAndroid.setExternalInterface("getUid", message -> {
//TODO: 平台的登陆
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", "");
}
login();
});
nativeAndroid.setExternalInterface("@onState", message -> {
Log.e(TAG, "Get @onState: " + message);
@ -193,20 +182,50 @@ public class MainActivity extends Activity {
// 支付
nativeAndroid.setExternalInterface("pay", message -> {
Log.i(TAG, "begin pay: " + message);
try {
JSONObject jsonObject = new JSONObject(message);
String cpOrderId = jsonObject.getString("orderId");
String productCode = jsonObject.getString("productCode");
int count = jsonObject.getInt("count");
//TODO: 平台的支付
PayOrderInfo payOrderInfo = new PayOrderInfo();
payOrderInfo.setCooperatorOrderSerial(jsonObject.getString("cooperatorOrderSerial"));
payOrderInfo.setProductName(jsonObject.getString("productName"));
payOrderInfo.setTotalPriceCent(jsonObject.getLong("totalPriceCent")); // 以分为单位
payOrderInfo.setRatio(jsonObject.getInt("ratio"));
payOrderInfo.setExtInfo(jsonObject.getString("extInfo")); // 该字段将会在支付成功后原样返回给CP(不超过500个字符)
payOrderInfo.setCpUid(jsonObject.getString("uid")); // 必传字段需要验证uid是否合法,此字段必须是登陆后或者切换账号后保存的uid
// if (isPayToBaidu) {
// payOrderInfo.isPurchaseBaiduGoods = "true";
// }
BDGameSDK.pay(MainActivity.this, payOrderInfo, null,
(resultCode, resultDesc, extraData) -> {
// alertDialog.cancel();
JSONObject obj = new JSONObject();
try {
obj.put("errcode", 0);
obj.put("errmsg", "");
nativeAndroid.callExternalInterface("payResult", obj.toString());
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) {
e.printStackTrace();
} catch ( Exception e ) {
@ -230,6 +249,28 @@ public class MainActivity extends Activity {
*/
nativeAndroid.setExternalInterface("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();
}
@Override
public void finish() {
super.finish();
BDGameSDK.closeFloatView(this); // 关闭悬浮窗
}
private void showLoadingView() {
launchScreenImageView = new ImageView(this);
launchScreenImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
@ -266,4 +313,120 @@ public class MainActivity extends Activity {
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);
});
}
}

View File

@ -14,7 +14,7 @@ public class WebApi {
public void getVersionInfo(BaseInterface 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";
AppRequestUtil.getInstance().getRequest(context, versionUrl, new RequestListener() {

View File

@ -12,6 +12,7 @@ import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@ -187,12 +188,15 @@ public class AssetsUtil {
*/
public static String readFromFile(Context context, String path) {
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);
String line="";
StringBuilder result= new StringBuilder();
while((line = bufReader.readLine()) != null)
result.append(line);
fileInputStream.close();
inputReader.close();
bufReader.close();
return result.toString();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 351 KiB

View File

@ -3,7 +3,7 @@
<string name="load_game">下载游戏资源</string>
<string name="start_game">进入游戏</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="load_back">load_back</string>
<string name="launch_version">获取游戏版本</string>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>

Binary file not shown.