update:2020.09.04
fix:截图上传,应用信息更新
add:
This commit is contained in:
2020-09-04 11:05:55 +08:00
parent 2340af523e
commit 83d7be8caf
7 changed files with 125 additions and 17 deletions

View File

@@ -99,7 +99,7 @@ android {
signingConfig signingConfigs.debug
/*********************************极光推送end************************************/
buildConfigField "String", "ROOT_URL", '"http://name.uiuios.com/api/"'
buildConfigField "String", "WebsocketURL", '"ws://39.98.59.202:2345"'
buildConfigField "String", "WebsocketURL", '"ws://39.108.116.195:2345"'
}
}
sourceSets {

View File

@@ -113,9 +113,8 @@ import rx.functions.Action1;
import static com.mjsheng.myappstore.jpush.TagAliasOperatorHelper.ACTION_SET;
import static com.mjsheng.myappstore.jpush.TagAliasOperatorHelper.TagAliasBean;
import static com.mjsheng.myappstore.jpush.TagAliasOperatorHelper.sequence;
import static com.mjsheng.myappstore.utils.Utils.shotScreen;
public class MainActivity extends AppCompatActivity {
public class MainActivity extends AppCompatActivity {
private ToastCallback callback;
private long mPreClickTime;
@@ -593,16 +592,12 @@ public class MainActivity extends AppCompatActivity {
tv_batch.setVisibility(View.VISIBLE);
tv_batch.setText(info.getBatch());
}
try {
if (info.getClasses().equals("")) {
layout_class.setVisibility(View.GONE);
tv_class.setText("暂无信息");
} else {
layout_class.setVisibility(View.VISIBLE);
tv_class.setText(info.getClasses());
}
} catch (Exception e) {
Log.e("fht", e.getMessage());
if (info.getClasses().equals("")) {
layout_class.setVisibility(View.GONE);
tv_class.setText("暂无信息");
} else {
layout_class.setVisibility(View.VISIBLE);
tv_class.setText(info.getClasses());
}
if (info.getSno().equals("")) {
layout_number.setVisibility(View.GONE);
@@ -885,7 +880,7 @@ public class MainActivity extends AppCompatActivity {
uploadAppInfo.setId(i);
String firstInstallTime = Utils.transferLongToDate(packageInfo.firstInstallTime);
uploadAppInfo.setInstall_time(firstInstallTime);
uploadAppInfo.setVersionCode(String.valueOf(packageInfo.versionCode));
// Log.e("mjsheng", "------------------" + uploadAppInfo);
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
} else {

View File

@@ -11,6 +11,7 @@ public class UploadAppInfo {
private String package_name;
private String app_name;
private String install_time;
private String versionCode;
private int id;
public String getPackage_name() {
@@ -45,6 +46,14 @@ public class UploadAppInfo {
this.install_time = install_time;
}
public String getVersionCode() {
return versionCode;
}
public void setVersionCode(String versionCode) {
this.versionCode = versionCode;
}
@Override
public String toString() {
return "UploadAppInfo{" +

View File

@@ -11,6 +11,7 @@ import android.content.pm.PackageManager;
import android.os.BatteryManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.Browser;
import android.provider.Settings;
import android.text.TextUtils;
@@ -22,6 +23,8 @@ import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.EncryptUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.PathUtils;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.mjsheng.myappstore.BuildConfig;
import com.mjsheng.myappstore.MyApplication;
import com.mjsheng.myappstore.activity.MainActivity;
@@ -33,6 +36,7 @@ import com.mjsheng.myappstore.network.Network;
import com.mjsheng.myappstore.network.api.ForceDownloadApi;
import com.mjsheng.myappstore.server.InitJpushServer;
import com.mjsheng.myappstore.utils.ApkUtils;
import com.mjsheng.myappstore.utils.CmdUtil;
import com.mjsheng.myappstore.utils.Configure;
import com.mjsheng.myappstore.utils.MySQLData;
import com.mjsheng.myappstore.utils.SaveListUtils;
@@ -43,15 +47,21 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import cn.jpush.android.api.JPushInterface;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import okhttp3.Call;
import okhttp3.Response;
import okhttp3.ResponseBody;
public class MyJPushReceiver extends BroadcastReceiver {
@@ -267,6 +277,15 @@ public class MyJPushReceiver extends BroadcastReceiver {
getAppLimitApi();
break;
case SN_SCREENSHOT:
screenshot(extras);
break;
case DEVICES_REBOOT:
Utils.rebootDevices(mContext);
break;
}
}
@@ -1068,4 +1087,84 @@ public class MyJPushReceiver extends BroadcastReceiver {
e.printStackTrace();
}
}
public void screenshot(String s) {
try {
JSONObject jSONObject = new JSONObject(s);
long createTime = jSONObject.getLong("createTime");
if (createTime != 0) {
Log.e("createTime", String.valueOf(createTime));
doscreenshot(createTime);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
public void doscreenshot(final long time) {
Observable.create(new ObservableOnSubscribe<Integer>() {
@Override
public void subscribe(ObservableEmitter<Integer> e) throws Exception {
String filepath = mContext.getExternalFilesDir("screenshot").getAbsolutePath();
int n = CmdUtil.execute("screencap -p " + filepath + File.separator + time + ".png").code;
e.onNext(n);
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Integer integer) {
if (integer == 0) {
uplaodImage(time);
} else {
Log.e("doscreenshot", "截图失败");
}
}
@Override
public void onError(Throwable e) {
Log.e("doscreenshot", "Throwable=" + e.getMessage());
}
@Override
public void onComplete() {
}
});
}
private void uplaodImage(long time) {
String filepath = mContext.getExternalFilesDir("screenshot").getAbsolutePath();
File file = new File(filepath + File.separator + time + ".png");
if (!file.exists()) {
Log.e("uplaodImage", "File does not exists");
return;
}
OkGo.post(Configure.SEND_SCREENSHOT)
.params("sn", Utils.getSerial())
.params("createtime", time)
.params("file", file)
.execute(new StringCallback() {
@Override
public void onSuccess(String s, Call call, Response response) {
com.alibaba.fastjson.JSONObject object = JSON.parseObject(s);
int code = object.getInteger("code");
String msg = object.getString("msg");
Log.e("uplaodImage", "code:" + code + "," + msg);
}
@Override
public void onError(Call call, Response response, Exception e) {
super.onError(call, response, e);
Log.e("uplaodImage", "e=" + e.getMessage());
}
});
}
}

View File

@@ -166,7 +166,7 @@ public class NewAppReceiver extends BroadcastReceiver {
uploadAppInfo.setId(i);
String firstInstallTime = Utils.transferLongToDate(packageInfo.firstInstallTime);
uploadAppInfo.setInstall_time(firstInstallTime);
uploadAppInfo.setVersionCode(String.valueOf(packageInfo.versionCode));
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
} else {

View File

@@ -205,5 +205,8 @@ public class Configure {
public final static String NET_AND_LAUNCH_API = HTTP_TAG_HEAD_NEW + "automatic/get";
//获取应用升级自启
public static final String GET_STUDENTS_INFO = HTTP_TAG_HEAD_NEW + "Sn/getStudent";
//通过sn获取信息
public static final String SEND_SCREENSHOT = HTTP_TAG_HEAD_NEW + "Screenshot/addImg";
}

View File

@@ -76,6 +76,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Utils {
@@ -1033,7 +1034,7 @@ public class Utils {
* 屏幕截图
* 适用于lanucher版
*/
public static void shotScreen() {
public void shotScreen() {
//adb截图方法
new Thread(new Runnable() {
@Override
@@ -1041,7 +1042,7 @@ public class Utils {
Log.e("whh0914", "开始屏幕截图...");
String filepath = "/sdcard/screenShot.png";
try {
execRootCmdSilent("screencap -p " + filepath);
CmdUtil.execute("screencap -p " + filepath);
} catch (Exception e) {
Log.e("whh0914", "屏幕截图出现异常:" + e.toString());
}
@@ -1049,6 +1050,7 @@ public class Utils {
}).start();
}
/**
* 执行命令但不关注结果输出
*/