Commit fb025a7b fb025a7b9d813050f8a59fcb118ca95489703c73 by jinwawa

complete java-update-function java-check-network

1 parent e9bc0a46
......@@ -9,6 +9,9 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
......@@ -19,6 +22,10 @@
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="com.hiveview.cloudscreen.user.READPROVIDER" />
<uses-permission android:name="com.hiveview.cloudscreen.user.WRITE_USERINFO_DB"/>
<application
android:allowBackup="true"
......
......@@ -137,4 +137,5 @@ dependencies {
implementation fileTree(include: ['*.jar'], dir: 'D:/CocosCreator_2.0.10/resources/cocos2d-x/cocos/platform/android/java/libs')
implementation project(':libcocos2dx')
implementation files('libs/TopdrawSDK.jar')
implementation 'com.mcxiaoke.volley:library:+'
}
......
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":2,"versionName":"2.0","enabled":true,"outputFile":"super_child-release.apk","fullName":"release","baseName":"release"},"path":"super_child-release.apk","properties":{}}]
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ProgressBar
android:id="@+id/update_progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/tv_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/update_progress"
android:layout_alignParentRight="true"
android:layout_margin="5dp"
android:textSize="18sp"
android:text="0%"/>
</RelativeLayout>
\ No newline at end of file
......@@ -27,31 +27,80 @@ package org.cocos2dx.javascript;
import org.cocos2d.helloworld.R;
import org.cocos2dx.lib.Cocos2dxActivity;
import org.cocos2dx.lib.Cocos2dxGLSurfaceView;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.AlertDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.content.Intent;
import android.content.res.Configuration;
import android.provider.Settings;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
public class AppActivity extends Cocos2dxActivity {
private static final String TAG="AppActivity";
private static AppActivity _activity;
private static View view=null;
public static final String ROOT_DIR = "/mnt/sdcard/mythroad11";
private UpdateManager mUpdateManager;
private int serverVersion ; //从服务器获取的版本号
private int clientVersion ; //客户端当前的版本号
private String serverVersionName ; //客户端当前的版本名称
private String apkDownloadUrl ; //apk下载地址
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG,"网络链接:"+isNetworkAvalible(AppActivity.this));
if(!isNetworkAvalible(AppActivity.this)){
TextView msg = new TextView(AppActivity.this);
msg.setText(" 当前未连接网络,请设置网络后登陆!");
new AlertDialog.Builder(AppActivity.this)
.setIcon(R.mipmap.ic_launcher)
.setTitle("网络状态提示")
.setView(msg)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
try {
new Thread().sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
AppActivity.this.finish();
System.exit(0);
android.os.Process.killProcess(android.os.Process.myPid());
}
}).create().show();
}
getClientCode();
getServerCode();
_activity=this;
TopdrawSDKWrapper.getInstance().init(this);
MyApplication.appActivity = this;
view= LayoutInflater.from(this).inflate(R.layout.activity_main,null);
mFrameLayout.addView(view);
// setContentView(R.layout.activity_main);
_activity=this;
// Workaround in https://stackoverflow.com/questions/16283079/re-launch-of-activity-on-home-button-but-only-the-first-time/16447508
if (!isTaskRoot()) {
// Android launched another instance of the root activity into an existing task
......@@ -61,9 +110,6 @@ public class AppActivity extends Cocos2dxActivity {
return;
}
TopdrawSDKWrapper.getInstance().init(this);
MyApplication.appActivity = this;
// DO OTHER INITIALIZATION BELOW
SDKWrapper.getInstance().init(this);
}
......@@ -158,57 +204,57 @@ public class AppActivity extends Cocos2dxActivity {
public View getProgressBarView(){
return view;
}
public static void startGame(int i,String apkName,final String strJSCallBack){
Log.d(TAG,"AppActivity starGame start..."+apkName);
// if (pluginLoaded) {
// return;
// }
// pluginLoaded = true;
// final String packageName = "com.topdraw.xhx";
// final String className = "org.cocos2dx.lua.AppActivity";
// PluginLoader.getInstance().start(packageName, new PluginLoader.OnResultListener() {
// @Override
// public void onResult(int i, final String msg) {
// if (0 == i) {
// try {
// Intent intent = new Intent();
// intent.setComponent(new ComponentName(packageName, className));
// intent.putExtra("path", msg);
// intent.putExtra("needNewProcess", true);
// intent.putExtra("needHook", true);
// _activity.startActivity(intent);
// pluginLoaded = false;
// } catch (Exception e) {
// e.printStackTrace();
// }
// } else if (-10 == i) {
// Toast.makeText(_activity, msg, Toast.LENGTH_LONG).show();
// pluginLoaded = false;
// } else {
// Log.d(TAG, "start plugin error | " + msg);
// }
// }
// },
// new PluginLoader.OnProgressListener() {
// @Override
// public void onProgress(final double d) {
// _activity.runOnUiThread(new Runnable() {
// @Override
// public void run() {
// int pg = Double.valueOf(d).intValue();
// if (100 == pg) {
// pb_progress.setVisibility(View.INVISIBLE);
// } else {
// if (View.INVISIBLE == pb_progress.getVisibility()) {
// pb_progress.setVisibility(View.VISIBLE);
// }
// }
// pb_progress.setProgress(pg);
// }
// });
// }
// });
private void getClientCode() {
try {
String pkName = this.getPackageName();
clientVersion = this.getPackageManager().getPackageInfo(pkName, 0).versionCode;
} catch (Exception e) {
e.printStackTrace();
clientVersion = -1;
}finally {
Log.v("zjn","---clientVersion:"+ clientVersion);
}
}
private void getServerCode(){
VolleyUtil.instance(this).add(new JsonObjectRequest(Request.Method.GET, UpdateManager.UPDATE_CHECK_ENDPOINT, "",
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray results = (JSONArray) response.get("resultSet");
serverVersion = results.getJSONObject(0).getInt("versionCode");
serverVersionName = results.getJSONObject(0).getString("versionName");
apkDownloadUrl = results.getJSONObject(0).getString("url");
String md5Str = results.getJSONObject(0).getString("hash_md5");
mUpdateManager = new UpdateManager(AppActivity.this);
mUpdateManager.showNoticeDialog(serverVersion,clientVersion,serverVersionName,apkDownloadUrl,md5Str);
} catch (Exception e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}));
}
public static boolean isNetworkAvalible(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager == null) {
return false;
} else {
NetworkInfo[] net_info = connectivityManager.getAllNetworkInfo();
if (net_info != null) {
for (int i = 0; i < net_info.length; i++) {
if (net_info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
}
......
package org.cocos2dx.javascript;
import android.content.Context;
import android.util.Log;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.topdraw.sdk.ITopdrawResultListener;
import java.util.HashMap;
import java.util.Map;
/**
* Created by gyzhong on 15/3/1.
*/
public class VolleyUtil {
String TAG = "chenzhu";
private static RequestQueue mRequestQueue = null;
static VolleyUtil volleyUtil ;
String s = "";
boolean isExit = false;//是否继续请求
public static VolleyUtil getVolley(){
if (volleyUtil==null){
volleyUtil = new VolleyUtil();
}
return volleyUtil;
}
public static RequestQueue instance(Context context) {
if (mRequestQueue == null) {
synchronized (VolleyUtil.class) {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(context);
mRequestQueue.start();
}
}
}
return mRequestQueue;
}
public boolean getIsExit(){
return isExit;
}
/**
* @author chenzhu
* creat at 2017/9/1 15:52
* @parms
* @return 请求后的回掉
**/
public interface PostCallBack {
void postSuccess(int flag, String jsonObject);
void postFaile(int flag,String error);
}
public void setIsExit(boolean exit){
isExit = exit;
}
/**
*@author chenzhu
*creat at 2017/9/1 16:01
*@param CallBack 请求的回调
* @param parm 请求回调的flag
* @param map 请求回调的参数
*@param url 请求的url
*@return
*post qingqiu
**/
public void volleypost(Context context, final PostCallBack CallBack, final int parm,final String url, final HashMap map) {
Log.i("chenzhu", "chenzhu--->post请求成功:--->isExit"+isExit);
if(isExit){
return;
}
StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
Log.i("chenzhu", "chenzhu--->post请求成功:--->parm:"+parm+"token:"+map.get("token") +"jsonObject:"+s+"--->URL:"+url+"--appID:"+map.get("appId")+"--songIds:"+map.get("songIds"));
CallBack.postSuccess(parm,s);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.i("chenzhu", "chenzhu--->post请求失败" + volleyError+"--->parm"+parm+"--->URL:"+url);
CallBack.postFaile(parm,volleyError+"");
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return map;
}
};
VolleyUtil.instance(context).add(request);
}
/**
*@author chenzhu
*creat at 2017/9/1 21:23
*@parms
*@return
*停止请求
**/
public void stopPost(Context context){
// VolleyUtil.instance(context).cancelAll(null);
}
}
......@@ -251,7 +251,6 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_split_apk_resources" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint_jar" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged-not-compiled-resources" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
......@@ -280,6 +279,7 @@
<orderEntry type="library" name="Gradle: __local_aars__:D.\LocalTopdrawSchool\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\libs\TopdrawSDK.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\CocosCreator_2.0.10\resources\cocos2d-x\cocos\platform\android\java\libs\com.android.vending.expansion.zipfile.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\CocosCreator_2.0.10\resources\cocos2d-x\cocos\platform\android\java\libs\android-async-http-1.4.9.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: com.mcxiaoke.volley:library:1.0.19@jar" level="project" />
<orderEntry type="module" module-name="libcocos2dx" />
</component>
</module>
\ No newline at end of file
......