|
@@ -0,0 +1,94 @@
|
|
|
+package me.yoqi.android.netauth.service;
|
|
|
+
|
|
|
+import android.os.AsyncTask;
|
|
|
+import android.os.Build;
|
|
|
+import android.service.quicksettings.Tile;
|
|
|
+import android.service.quicksettings.TileService;
|
|
|
+
|
|
|
+import androidx.annotation.RequiresApi;
|
|
|
+
|
|
|
+import me.yoqi.android.netauth.R;
|
|
|
+import me.yoqi.android.netauth.utils.NtutNet;
|
|
|
+import me.yoqi.android.utils.NetUtils;
|
|
|
+import me.yoqi.android.utils.SPUtils;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author liuyuqi.gov@msn.cn
|
|
|
+ * @created 2020-10-17
|
|
|
+ */
|
|
|
+@RequiresApi(api = Build.VERSION_CODES.N)
|
|
|
+public class QSTileService extends TileService {
|
|
|
+
|
|
|
+ SPUtils spUtils;
|
|
|
+ Tile tile;
|
|
|
+ NtutNet cdutNet = new NtutNet();
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 图标可见回调
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void onStartListening() {
|
|
|
+ super.onStartListening();
|
|
|
+ if (NetUtils.isWifiConnected(this)) {
|
|
|
+ updateStatus(R.string.tile_label, false);
|
|
|
+ } else {// 未连接 WiFi 则将图块置为不可用状态
|
|
|
+ updateStatus(R.string.tile_status_no_net_conn, false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onClick() {
|
|
|
+ super.onClick();
|
|
|
+ tile = getQsTile();
|
|
|
+ new MyTask().execute();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新状态
|
|
|
+ *
|
|
|
+ * @param labelId
|
|
|
+ * @param enable
|
|
|
+ */
|
|
|
+ void updateStatus(int labelId, boolean enable) {
|
|
|
+ tile = getQsTile();
|
|
|
+ tile.setLabel(getString(labelId));
|
|
|
+ if (enable) {
|
|
|
+ tile.setState(Tile.STATE_ACTIVE); //登录校园网成功
|
|
|
+ } else {
|
|
|
+ tile.setState(Tile.STATE_UNAVAILABLE);
|
|
|
+ }
|
|
|
+ tile.updateTile();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 异步登录
|
|
|
+ */
|
|
|
+ class MyTask extends AsyncTask<String, Integer, Boolean> {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected Boolean doInBackground(String... strings) {
|
|
|
+ //更新状态
|
|
|
+ publishProgress(R.string.tile_status_check);
|
|
|
+ Boolean res = cdutNet.check();
|
|
|
+ if (res == null) {
|
|
|
+ publishProgress(R.string.tile_status_not); // 未连接校园网
|
|
|
+ return false;
|
|
|
+ } else if (res) {
|
|
|
+ publishProgress(R.string.tile_status_ok); //登录成功
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ //执行登录
|
|
|
+ if (cdutNet.login("ss", "236")) {
|
|
|
+ publishProgress(R.string.tile_status_failed); //登录失败
|
|
|
+ return false;
|
|
|
+ } else return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onProgressUpdate(Integer... values) {
|
|
|
+ super.onProgressUpdate(values);
|
|
|
+// updateStatus(values[0], false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|