update:2020.01.10 20:21

fix:修改安装逻辑,优化状态栏逻辑
add:
This commit is contained in:
2020-01-10 20:22:04 +08:00
parent 0f23821d20
commit 7164c94e18
32 changed files with 645 additions and 521 deletions

View File

@@ -8,6 +8,7 @@ import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.os.BatteryManager;
@@ -37,13 +38,19 @@ import com.hjq.permissions.OnPermission;
import com.hjq.permissions.Permission;
import com.hjq.permissions.XXPermissions;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.cache.CacheMode;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okserver.download.DownloadManager;
import com.lzy.okserver.download.DownloadService;
import com.mjsheng.myappstore.BuildConfig;
import com.mjsheng.myappstore.R;
import com.mjsheng.myappstore.bean.AppDateInfo;
import com.mjsheng.myappstore.bean.CommonPicBean;
import com.mjsheng.myappstore.bean.CommonPicData;
import com.mjsheng.myappstore.bean.ForceDownloadBean;
import com.mjsheng.myappstore.bean.ForceDownloadData;
import com.mjsheng.myappstore.bean.JsonCallback;
import com.mjsheng.myappstore.bean.LzyResponse;
import com.mjsheng.myappstore.bean.NetAndLaunchBean;
import com.mjsheng.myappstore.bean.NetAndLaunchData;
import com.mjsheng.myappstore.bean.UploadAppInfo;
@@ -52,6 +59,7 @@ import com.mjsheng.myappstore.comm.CommonDatas;
import com.mjsheng.myappstore.network.HTTPInterface;
import com.mjsheng.myappstore.network.Network;
import com.mjsheng.myappstore.network.api.AppLimitApi;
import com.mjsheng.myappstore.network.api.BrankPicApi;
import com.mjsheng.myappstore.network.api.DeselectBrowserIDApi;
import com.mjsheng.myappstore.network.api.DeselectIDApi;
import com.mjsheng.myappstore.network.api.ForceDownloadApi;
@@ -70,6 +78,7 @@ import com.mjsheng.myappstore.utils.update.AllDialogShowStrategy;
import com.mjsheng.myappstore.utils.update.NotificationDownloadCreator;
import com.mjsheng.myappstore.utils.update.OkhttpCheckWorker;
import com.mjsheng.myappstore.utils.update.ToastCallback;
import com.mjsheng.myappstore.utils.update.ToastTool;
import com.tianma.netdetector.lib.NetStateChangeObserver;
import com.tianma.netdetector.lib.NetworkType;
@@ -79,6 +88,7 @@ import org.lzh.framework.updatepluginlib.UpdateBuilder;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -106,7 +116,7 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
private DownloadManager downloadManager;
public static boolean isForeground = false;
private ImageView imageView;
private TextView tv_devsn, tv_devmac, tv_version;
private TextView tv_devsn, tv_devmac, tv_version;
private int DeviceInfo;
@Override
@@ -143,7 +153,7 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
// }
requestPermission();
registerMessageReceiver(); // used for receive msg
HTTPInterface.checkDevicesInfo(handler);
// HTTPInterface.checkDevicesInfo(handler);
startService(new Intent(MainActivity.this, MyDownloadService.class));
Aria.get(this).getDownloadConfig().setMaxTaskNum(1);
@@ -162,7 +172,6 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
allIntent.setAction(Utils.DOWNLOAD_ALLTASK_ACTION);
sendBroadcast(allIntent);
}
@@ -172,18 +181,19 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
.params("sn", Utils.getSerial())
.params("mac", com.blankj.utilcode.util.DeviceUtils.getMacAddress())
.params("jpush_id", rid)
.params("appstore_version", Utils.getProperty("ro.custom.build.version","获取失败"))
.params("store_version", BuildConfig.VERSION_NAME)
.execute(new StringCallback() {
@Override
public void onSuccess(String s, Call call, Response response) {
com.alibaba.fastjson.JSONObject msgObject = JSON.parseObject(s);
int code = msgObject.getInteger("code");
Log.e("sendMACaddress", msgObject.getString("msg"));
Log.e("fht", "sendMACaddress onSuccess"+s);
}
@Override
public void onError(Call call, Response response, Exception e) {
super.onError(call, response, e);
Log.e("sendMACaddress", e.getMessage());
Log.e("fht", "sendMACaddress onError:"+e.getMessage());
}
});
@@ -195,9 +205,9 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
private void initView() {
imageView = findViewById(R.id.imageView);
tv_devsn = findViewById(R.id.tv_devsn);
tv_devsn.setText("设备SN:" + Utils.getSerial());
tv_devsn.setText("设备SN\t\t" + Utils.getSerial());
tv_devmac = findViewById(R.id.tv_devmac);
tv_devmac.setText("设备MAC:" + com.blankj.utilcode.util.DeviceUtils.getMacAddress());
tv_devmac.setText("MAC地址\t\t" + com.blankj.utilcode.util.DeviceUtils.getMacAddress());
tv_version = findViewById(R.id.version);
tv_version.setText("版本:" + BuildConfig.VERSION_NAME);
}
@@ -206,6 +216,7 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
Log.e("mjhsneg", "gagagag--------------------------" + Utils.getSerial());
getLockedState();
initJpush();//初始化极光推送
setJpushTags();
// update();//接口更新app
sendMACaddress();
@@ -231,52 +242,6 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
}
private String getGrade(String grade) {
String s;
switch (grade) {
case "1":
s = "一年级";
break;
case "2":
s = "二年级";
break;
case "3":
s = "三年级";
break;
case "4":
s = "四年级";
break;
case "5":
s = "五年级";
break;
case "6":
s = "六年级";
break;
case "7":
s = "初一";
break;
case "8":
s = "初二";
break;
case "9":
s = "初三";
break;
case "10":
s = "高一";
break;
case "11":
s = "高二";
break;
case "12":
s = "高三";
break;
default:
s = "一年级";
break;
}
return s;
}
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
@@ -441,6 +406,7 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
Aria.download(this).resumeAllTask();
getForceDownload();//强制下载apk
resetDevice();//恢复出厂设置
checkUpdate();//更新app
// fromNetToUpdate();
String registrationID = JPushInterface.getRegistrationID(MainActivity.this);
Log.e("mjsheng", registrationID + "------------------------");
@@ -462,6 +428,49 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
}
}
private void checkUpdate() {
HTTPInterface.checkUpdate(mHandler, "com.jiaoguanyi.store");
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 200:
com.alibaba.fastjson.JSONObject jsonObject = (com.alibaba.fastjson.JSONObject) msg.obj;
installAPK(jsonObject);
break;
case -200:
Log.e("fht", "no update");
}
}
};
private void installAPK(com.alibaba.fastjson.JSONObject jsonObject) {
String url = jsonObject.getString("url");
int versionCode = jsonObject.getInteger("version_code");
String packageName = jsonObject.getString("package");
PackageManager pm = getPackageManager();
PackageInfo packageInfo = null;
try {
packageInfo = pm.getPackageInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if (packageInfo == null || packageInfo.versionCode != versionCode) {
Aria.download(this)
.load(url) //读取下载地址
.setFilePath(PathUtils.getExternalDownloadsPath() + "/ygj/" + EncryptUtils.encryptMD5ToString(packageName) + ".apk", true)
.setExtendField(packageName)
.start(); //启动下载}
} else {
Log.e("fht", "无需更新");
}
}
private int getBatteryLevel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
BatteryManager batteryManager = (BatteryManager) getSystemService(BATTERY_SERVICE);
@@ -488,8 +497,93 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
Intent allIntent = new Intent();
allIntent.setAction(Utils.DOWNLOAD_ALLTASK_ACTION);
sendBroadcast(allIntent);
loadHeadImg(Configure.HTTP_TAG_HOME_PAGE_URL);
lazyLoading();
}
private void loadHeadImg(String URL) {
BrankPicApi brankPicApi = Network.getBrankPicApi();
brankPicApi.getBrankPicApi(Configure.HTTP_KEY, Utils.getSerial(), "1")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<CommonPicBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(CommonPicBean projectPicBean) {
paraData(projectPicBean);
Log.e("mjsheng", "brankPicApi---" + projectPicBean.toString());
}
@Override
public void onError(Throwable e) {
Utils.showToast(getApplicationContext(), "网络出错!");
Log.e("mjsheng", "brankPicApi---error----" + e.getMessage());
}
@Override
public void onComplete() {
}
});
}
private void paraData(CommonPicBean categoryPicBean) {
int code = categoryPicBean.getCode();
switch (code) {
case 200:
final List<CommonPicData> data = categoryPicBean.getData();
// if (data != null && data.size() > 0) {
// List<String> list = new ArrayList<>();
// for (int i = 0; i < data.size(); i++) {
// list.add(data.get(i).getImg());
// }
// webBannerAdapter = new WebBannerAdapter(getActivity(), list);
// webBannerAdapter.setOnBannerItemClickListener(new BannerLayout.OnBannerItemClickListener() {
// @Override
// public void onItemClick(int position) {
// loadProjectByType(Configure.HTTP_TAG_BRAND_DETAILS_URL, data.get(position).getId(), data.get(position).getName());
// }
// });
// recyclerBanner.setAdapter(webBannerAdapter);
// mAdapter = new TopRecyclerViewAdapter(getActivity(), "home", list, new TopRecyclerViewAdapter.HorizontalScrollViewListener() {
// @Override
// public void onClick(String iconUrl, int position) {
// sound.playSoundEffect();
// loadProjectByType(Configure.HTTP_TAG_BRAND_DETAILS_URL, data.get(position).getId(), data.get(position).getName());
// }
// });
// mTopRlView.setAdapter(mAdapter);
// } else {
// // Utils.showToast(getContext(), "数据为空!");
// Log.e("mjsheng", "推荐页轮播图为空!");
// }
break;
case -200:
paraError(categoryPicBean.getMsg());
break;
}
}
private void paraError(String msg) {
switch (msg) {
case "没有找到SN码":
Utils.showToast(getApplicationContext(), msg);
break;
default:
Utils.showToast(getApplicationContext(), msg);
break;
}
}
@Override
protected void onDestroy() {
@@ -563,6 +657,57 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
});
}
private void setJpushTags() {
OkGo.get(Configure.GET_DEVICES_TAGS)
.params("sn", Utils.getSerial())
.execute(new StringCallback() {
@Override
public void onSuccess(String s, Call call, Response response) {
Log.e("fht", s);
com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(s);
int code = jsonObject.getInteger("code");
com.alibaba.fastjson.JSONObject data = jsonObject.getJSONObject("data");
if (code == 200) {
String batch = data.getString("batch");
if (batch != null && !batch.equals("")) {
Set set = new HashSet();
set.add(batch);
JPushInterface.setTags(MainActivity.this, set, new TagAliasCallback() {
@Override
public void gotResult(int i, String s, Set<String> set) {
if (set == null) {
Log.e("initmjsheng", "set is null");
} else {
Log.e("initmjsheng", "set ---" + set.toString());
}
Log.e("JPushInterface", s + "---" + i + "---");
if (i == 0) {
Log.e("JPushInterface", "Tag绑定成功");
} else if (i == 6001) {
Log.e("JPushInterface", "无效的设置,用户名为空");
} else if (i == 6002) {
Log.e("JPushInterface", "设置超时,请重试");
timerImitate();
} else if (i == 6011) {
Log.e("JPushInterface", "短时间内操作过于频繁");
} else if (i == 996) {
Log.e("JPushInterface", "网络连接断开");
timerImitate();
}
}
});
}
}
}
@Override
public void onError(Call call, Response response, Exception e) {
super.onError(call, response, e);
Log.e("fht", e.getMessage());
}
});
}
private void initJpush() {
JPushInterface.setAlias(this, Utils.getSerial(), new TagAliasCallback() {
@@ -600,6 +745,8 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
public void call(Long aLong) {
Log.e("JPushInterface", "JPushInterface重新加载");
initJpush();
setJpushTags();
}
});
}
@@ -1159,22 +1306,11 @@ public class MainActivity extends AppCompatActivity implements NetStateChangeObs
//状态栏显示开关
int setting_statusbar = changeNum(data.optInt("setting_statusbar"));
boolean qch_hide_statusBar = Settings.System.putInt(getContentResolver(), "qch_hide_statusBar", setting_statusbar);
Log.e("SystemSetting", "qch_hide_statusBar---------" + qch_hide_statusBar);
String statusbarStatus = "";
switch (setting_statusbar) {
case 0:
statusbarStatus = "qch_show_statusBar";
break;
case 1:
statusbarStatus = "qch_hide_statusBar";
break;
int oldNum = Settings.System.getInt(mContext.getContentResolver(), "qch_hide_statusBar", 1);
if (oldNum != setting_statusbar) {
boolean qch_hide_statusBar = Settings.System.putInt(mContext.getContentResolver(), "qch_hide_statusBar", setting_statusbar);
Log.e("SystemSetting", "qch_hide_statusBar---------" + qch_hide_statusBar);
}
Intent statusIntent = new Intent(statusbarStatus);
sendBroadcast(statusIntent);
//摄像头开关
int setting_camera = changeNum(data.optInt("setting_camera"));
Log.e("SystemSetting", "setting_camera---------" + setting_camera);