version:
update:2021.03.17 fix:更改获取接口的触发条件,网络访问失败时使用本地的数据 add:
This commit is contained in:
@@ -41,8 +41,8 @@ android {
|
|||||||
productFlavors {
|
productFlavors {
|
||||||
official {
|
official {
|
||||||
flavorDimensions "default"
|
flavorDimensions "default"
|
||||||
versionCode 1032
|
versionCode 1033
|
||||||
versionName "2.0.3.2"// 正式jiaoguanyi.com 双数正式 单数测试
|
versionName "2.0.3.3"// 正式jiaoguanyi.com 双数正式 单数测试
|
||||||
/*********************************极光推送************************************/
|
/*********************************极光推送************************************/
|
||||||
manifestPlaceholders = [
|
manifestPlaceholders = [
|
||||||
JPUSH_PKGNAME: "com.jiaoguanyi.appstore",
|
JPUSH_PKGNAME: "com.jiaoguanyi.appstore",
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="com.mjsheng.myappstore"
|
package="com.mjsheng.myappstore"
|
||||||
android:sharedUserId="android.uid.system">
|
android:sharedUserId="android.uid.system">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
|
||||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||||
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
|
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
|
||||||
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
|
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
|
||||||
@@ -42,6 +40,7 @@
|
|||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.BATTERY_STATS" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||||
|
|||||||
@@ -2,18 +2,23 @@ package com.mjsheng.myappstore;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.nfc.Tag;
|
||||||
|
import android.os.BatteryManager;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
|
import android.os.Process;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import androidx.multidex.MultiDexApplication;
|
import androidx.multidex.MultiDexApplication;
|
||||||
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -40,7 +45,6 @@ import com.mjsheng.myappstore.jpush.TagAliasOperatorHelper;
|
|||||||
import com.mjsheng.myappstore.network.HTTPInterface;
|
import com.mjsheng.myappstore.network.HTTPInterface;
|
||||||
import com.mjsheng.myappstore.network.Network;
|
import com.mjsheng.myappstore.network.Network;
|
||||||
import com.mjsheng.myappstore.network.api.newapi.GetLockState;
|
import com.mjsheng.myappstore.network.api.newapi.GetLockState;
|
||||||
import com.mjsheng.myappstore.receiver.BootReceiver;
|
|
||||||
import com.mjsheng.myappstore.receiver.NewAppReceiver;
|
import com.mjsheng.myappstore.receiver.NewAppReceiver;
|
||||||
import com.mjsheng.myappstore.server.GuardService;
|
import com.mjsheng.myappstore.server.GuardService;
|
||||||
import com.mjsheng.myappstore.server.InitJpushServer;
|
import com.mjsheng.myappstore.server.InitJpushServer;
|
||||||
@@ -48,7 +52,9 @@ import com.mjsheng.myappstore.server.MyDownloadService;
|
|||||||
import com.mjsheng.myappstore.server.StepService;
|
import com.mjsheng.myappstore.server.StepService;
|
||||||
import com.mjsheng.myappstore.utils.Configure;
|
import com.mjsheng.myappstore.utils.Configure;
|
||||||
import com.mjsheng.myappstore.utils.MySQLData;
|
import com.mjsheng.myappstore.utils.MySQLData;
|
||||||
|
import com.mjsheng.myappstore.utils.NetworkUtils;
|
||||||
import com.mjsheng.myappstore.utils.SPUtils;
|
import com.mjsheng.myappstore.utils.SPUtils;
|
||||||
|
import com.mjsheng.myappstore.utils.SystemUtils;
|
||||||
import com.mjsheng.myappstore.utils.ToastUtil;
|
import com.mjsheng.myappstore.utils.ToastUtil;
|
||||||
import com.mjsheng.myappstore.utils.Utils;
|
import com.mjsheng.myappstore.utils.Utils;
|
||||||
import com.mjsheng.myappstore.utils.update.ToastTool;
|
import com.mjsheng.myappstore.utils.update.ToastTool;
|
||||||
@@ -91,9 +97,8 @@ import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
|
|||||||
|
|
||||||
//public class MyApplication extends MultiDexApplication implements Thread.UncaughtExceptionHandler {
|
//public class MyApplication extends MultiDexApplication implements Thread.UncaughtExceptionHandler {
|
||||||
public class MyApplication extends MultiDexApplication {
|
public class MyApplication extends MultiDexApplication {
|
||||||
|
private final String TAG = MyApplication.class.getSimpleName();
|
||||||
public static String userName = null;
|
public static String userName = null;
|
||||||
private static final String TAG = "--MyApplication--";
|
|
||||||
public static Context context;
|
public static Context context;
|
||||||
public static boolean LOOP_STOPING = false; //停止 循环
|
public static boolean LOOP_STOPING = false; //停止 循环
|
||||||
public static MainActivity mainActivity;
|
public static MainActivity mainActivity;
|
||||||
@@ -125,7 +130,12 @@ public class MyApplication extends MultiDexApplication {
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
|
if (SystemUtils.IsMainProcessName(this, Process.myPid())) {
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
Configuration config = getResources().getConfiguration();
|
Configuration config = getResources().getConfiguration();
|
||||||
int smallestScreenWidthDp = config.smallestScreenWidthDp;
|
int smallestScreenWidthDp = config.smallestScreenWidthDp;
|
||||||
Log.e("mjsheng", "smallestScreenWidthDp=" + smallestScreenWidthDp);
|
Log.e("mjsheng", "smallestScreenWidthDp=" + smallestScreenWidthDp);
|
||||||
@@ -175,6 +185,8 @@ public class MyApplication extends MultiDexApplication {
|
|||||||
startService(new Intent(this, MyDownloadService.class));
|
startService(new Intent(this, MyDownloadService.class));
|
||||||
}
|
}
|
||||||
registerTimeReceiver();
|
registerTimeReceiver();
|
||||||
|
registerBatteryReceiver();
|
||||||
|
registerNetworkReceiver();
|
||||||
//忽略电池优化
|
//忽略电池优化
|
||||||
// ignoreBatteryOptimization(this);
|
// ignoreBatteryOptimization(this);
|
||||||
|
|
||||||
@@ -230,7 +242,6 @@ public class MyApplication extends MultiDexApplication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 忽略电池优化
|
* 忽略电池优化
|
||||||
*/
|
*/
|
||||||
@@ -266,7 +277,7 @@ public class MyApplication extends MultiDexApplication {
|
|||||||
|
|
||||||
//监听时间和日期变化
|
//监听时间和日期变化
|
||||||
public void registerTimeReceiver() {
|
public void registerTimeReceiver() {
|
||||||
receiver = new receiver();
|
screenReceiver = new ScreenReceiver();
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||||||
filter.addAction(Intent.ACTION_USER_PRESENT);
|
filter.addAction(Intent.ACTION_USER_PRESENT);
|
||||||
@@ -275,10 +286,10 @@ public class MyApplication extends MultiDexApplication {
|
|||||||
filter.addAction(Intent.ACTION_USER_UNLOCKED);
|
filter.addAction(Intent.ACTION_USER_UNLOCKED);
|
||||||
filter.addAction("android.intent.action.FACTORY_RESET");
|
filter.addAction("android.intent.action.FACTORY_RESET");
|
||||||
filter.addAction("android.intent.action.MASTER_CLEAR");
|
filter.addAction("android.intent.action.MASTER_CLEAR");
|
||||||
registerReceiver(receiver, filter);
|
registerReceiver(screenReceiver, filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
private receiver receiver;
|
private ScreenReceiver screenReceiver;
|
||||||
|
|
||||||
Long time1 = 0L;
|
Long time1 = 0L;
|
||||||
Long time2 = 0L;
|
Long time2 = 0L;
|
||||||
@@ -286,12 +297,12 @@ public class MyApplication extends MultiDexApplication {
|
|||||||
Long time3 = 0L;
|
Long time3 = 0L;
|
||||||
Long time4 = 0L;
|
Long time4 = 0L;
|
||||||
|
|
||||||
public class receiver extends BroadcastReceiver {
|
public class ScreenReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(final Context context, Intent intent) {
|
public void onReceive(final Context context, Intent intent) {
|
||||||
String action = intent.getAction();
|
String action = intent.getAction();
|
||||||
Log.e("fht", "receiver action:" + action);
|
Log.e(TAG, "action:" + action);
|
||||||
if (action.equals(Intent.ACTION_SCREEN_ON)) {
|
if (action.equals(Intent.ACTION_SCREEN_ON)) {
|
||||||
long time = System.currentTimeMillis();
|
long time = System.currentTimeMillis();
|
||||||
if (null != locationClient) {
|
if (null != locationClient) {
|
||||||
@@ -299,52 +310,55 @@ public class MyApplication extends MultiDexApplication {
|
|||||||
locationClient.startLocation();
|
locationClient.startLocation();
|
||||||
}
|
}
|
||||||
getLockState("2", String.valueOf(time));
|
getLockState("2", String.valueOf(time));
|
||||||
} else if (action.equals(Intent.ACTION_USER_PRESENT)) {
|
}
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
// else if (action.equals(Intent.ACTION_USER_PRESENT)) {
|
||||||
/*在8.0以上 除了开机广播其他广播基本上没有用
|
//// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
*当静默安装升级时,app不会被唤醒,只有通过显示广播唤醒
|
//// /*在8.0以上 除了开机广播其他广播基本上没有用
|
||||||
* */
|
//// *当静默安装升级时,app不会被唤醒,只有通过显示广播唤醒
|
||||||
mHandler.postDelayed(new Runnable() {
|
//// * */
|
||||||
@Override
|
//// mHandler.postDelayed(new Runnable() {
|
||||||
public void run() {
|
//// @Override
|
||||||
Intent intent1 = new Intent(BootReceiver.BOOT_COMPLETED);
|
//// public void run() {
|
||||||
intent1.setComponent(new ComponentName("com.jiaoguanyi.store", "com.mjsheng.myappstore.receiver.BootReceiver"));
|
//// Intent intent1 = new Intent(BootReceiver.BOOT_COMPLETED);
|
||||||
// 携带数据
|
//// intent1.setComponent(new ComponentName("com.jiaoguanyi.store", "com.mjsheng.myappstore.receiver.BootReceiver"));
|
||||||
// intent1.putExtra("test", "我是来测 A 应用的Android 8.0 系统静态广播的测试数据");
|
//// // 携带数据
|
||||||
// 启动发送广播
|
////// intent1.putExtra("test", "我是来测 A 应用的Android 8.0 系统静态广播的测试数据");
|
||||||
sendBroadcast(intent1);
|
//// // 启动发送广播
|
||||||
|
//// sendBroadcast(intent1);
|
||||||
time2 = System.currentTimeMillis();
|
////
|
||||||
if ((time2 - time1) > 60 * 1000) {
|
//// time2 = System.currentTimeMillis();
|
||||||
//可能会多次触发,1分钟之内不执行
|
//// if ((time2 - time1) > 60 * 1000) {
|
||||||
//application中启动服务,startcommand执行会两次
|
//// //可能会多次触发,1分钟之内不执行
|
||||||
startService(new Intent(context, InitJpushServer.class));
|
//// //application中启动服务,startcommand执行会两次
|
||||||
startService(new Intent(context, StepService.class));
|
//// startService(new Intent(context, InitJpushServer.class));
|
||||||
startService(new Intent(context, GuardService.class));
|
//// startService(new Intent(context, StepService.class));
|
||||||
time1 = time2;
|
//// startService(new Intent(context, GuardService.class));
|
||||||
}
|
//// time1 = time2;
|
||||||
}
|
//// }
|
||||||
}, 5000);
|
//// }
|
||||||
|
//// }, 5000);
|
||||||
}
|
////
|
||||||
} else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
|
//// }
|
||||||
mHandler.postDelayed(new Runnable() {
|
//// }
|
||||||
@Override
|
//// else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
|
||||||
public void run() {
|
//// mHandler.postDelayed(new Runnable() {
|
||||||
long time = System.currentTimeMillis();
|
//// @Override
|
||||||
getLockState("1", String.valueOf(time));
|
//// public void run() {
|
||||||
if (time3 - System.currentTimeMillis() >= 10000) {
|
//// long time = System.currentTimeMillis();
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
//// getLockState("1", String.valueOf(time));
|
||||||
Intent intent1 = new Intent(BootReceiver.BOOT_COMPLETED);
|
//// if (time3 - System.currentTimeMillis() >= 10000) {
|
||||||
intent1.setComponent(new ComponentName("com.jiaoguanyi.store", "com.mjsheng.myappstore.receiver.BootReceiver"));
|
//// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
sendBroadcast(intent1);
|
//// Intent intent1 = new Intent(BootReceiver.BOOT_COMPLETED);
|
||||||
deleteScreenshots();
|
//// intent1.setComponent(new ComponentName("com.jiaoguanyi.store", "com.mjsheng.myappstore.receiver.BootReceiver"));
|
||||||
}
|
//// sendBroadcast(intent1);
|
||||||
}
|
//// deleteScreenshots();
|
||||||
time3 = System.currentTimeMillis();
|
//// }
|
||||||
}
|
//// }
|
||||||
}, 10000);
|
//// time3 = System.currentTimeMillis();
|
||||||
} else if (action.equals("android.intent.action.FACTORY_RESET")
|
//// }
|
||||||
|
//// }, 10000);
|
||||||
|
//// }
|
||||||
|
else if (action.equals("android.intent.action.FACTORY_RESET")
|
||||||
|| action.equals("android.intent.action.MASTER_CLEAR")
|
|| action.equals("android.intent.action.MASTER_CLEAR")
|
||||||
//MASTER_CLEAR 7.0可以监听
|
//MASTER_CLEAR 7.0可以监听
|
||||||
|| action.equals("android.intent.action.MASTER_CLEAR_NOTIFICATION")
|
|| action.equals("android.intent.action.MASTER_CLEAR_NOTIFICATION")
|
||||||
@@ -358,6 +372,83 @@ public class MyApplication extends MultiDexApplication {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerBatteryReceiver() {
|
||||||
|
if (null == batteryReceiver) {
|
||||||
|
batteryReceiver = new BatteryReceiver();
|
||||||
|
}
|
||||||
|
IntentFilter filter = new IntentFilter();
|
||||||
|
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||||||
|
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
|
||||||
|
filter.addAction(Intent.ACTION_BATTERY_LOW);
|
||||||
|
filter.addAction(Intent.ACTION_BATTERY_OKAY);
|
||||||
|
filter.addAction(Intent.ACTION_POWER_CONNECTED);
|
||||||
|
filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
|
||||||
|
registerReceiver(batteryReceiver, filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
BatteryReceiver batteryReceiver;
|
||||||
|
|
||||||
|
private class BatteryReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
String action = intent.getAction();
|
||||||
|
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
|
||||||
|
// 当前电量
|
||||||
|
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
|
||||||
|
// 最大电量
|
||||||
|
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0);
|
||||||
|
int elec = (level * 100) / scale;
|
||||||
|
Log.e(TAG, "electricity:=" + elec + "%");
|
||||||
|
if (elec == 80 || elec == 50 || elec == 30) {
|
||||||
|
startService(new Intent(getBaseContext(), InitJpushServer.class));
|
||||||
|
}
|
||||||
|
} else if (Intent.ACTION_POWER_CONNECTED.equals(action)
|
||||||
|
|| Intent.ACTION_POWER_DISCONNECTED.equals(action)
|
||||||
|
|| Intent.ACTION_BATTERY_LOW.equals(action)
|
||||||
|
|| Intent.ACTION_BATTERY_OKAY.equals(action)
|
||||||
|
) {
|
||||||
|
Log.e(TAG, action);
|
||||||
|
startService(new Intent(getBaseContext(), InitJpushServer.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerNetworkReceiver() {
|
||||||
|
if (null == netReceiver) {
|
||||||
|
netReceiver = new NetworkStateReceiver();
|
||||||
|
}
|
||||||
|
IntentFilter filter = new IntentFilter();
|
||||||
|
filter.addAction("android.net.ethernet.ETHERNET_STATE_CHANGED");
|
||||||
|
filter.addAction("android.net.ethernet.STATE_CHANGE");
|
||||||
|
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
|
||||||
|
filter.addAction("android.net.wifi.WIFI_STATE_CHANGED");
|
||||||
|
filter.addAction("android.net.wifi.STATE_CHANGE");
|
||||||
|
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
|
||||||
|
registerReceiver(netReceiver, filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private NetworkStateReceiver netReceiver;
|
||||||
|
|
||||||
|
|
||||||
|
public class NetworkStateReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
if (intent == null || intent.getAction() == null) {
|
||||||
|
Log.e(TAG, "NetworkStateReceiver: 异常");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (NetworkUtils.isConnected(getBaseContext())) {
|
||||||
|
Log.e(TAG, "NetworkStateReceiver: 网络连接成功");
|
||||||
|
startService(new Intent(getBaseContext(), InitJpushServer.class));
|
||||||
|
} else {
|
||||||
|
Log.e(TAG, "NetworkStateReceiver: 网络连接失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void deleteScreenshots() {
|
private void deleteScreenshots() {
|
||||||
Log.e("File", "deleteScreenshots");
|
Log.e("File", "deleteScreenshots");
|
||||||
String path = getExternalFilesDir("db").getAbsolutePath();
|
String path = getExternalFilesDir("db").getAbsolutePath();
|
||||||
@@ -535,7 +626,7 @@ public class MyApplication extends MultiDexApplication {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized public static void setJpushAlias() {
|
synchronized public static void setJpushAlias() {
|
||||||
Log.e("jiguangInterface", "10s后重新设置alias");
|
Log.e("jiguangInterface", "10s后重新设置alias");
|
||||||
Observable.timer(10000, TimeUnit.MILLISECONDS)
|
Observable.timer(10000, TimeUnit.MILLISECONDS)
|
||||||
.observeOn(rx.android.schedulers.AndroidSchedulers.mainThread())
|
.observeOn(rx.android.schedulers.AndroidSchedulers.mainThread())
|
||||||
|
|||||||
@@ -870,6 +870,7 @@ public class MainActivity extends AppCompatActivity implements AMapLocationListe
|
|||||||
public void onError(Call call, Response response, Exception e) {
|
public void onError(Call call, Response response, Exception e) {
|
||||||
super.onError(call, response, e);
|
super.onError(call, response, e);
|
||||||
Log.e("onError", "error:" + e.getMessage());
|
Log.e("onError", "error:" + e.getMessage());
|
||||||
|
handler.sendEmptyMessage(-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
});// 请求方式和请求url
|
});// 请求方式和请求url
|
||||||
|
|||||||
@@ -12,11 +12,12 @@ import com.mjsheng.myappstore.server.MyDownloadService;
|
|||||||
import com.mjsheng.myappstore.server.StepService;
|
import com.mjsheng.myappstore.server.StepService;
|
||||||
|
|
||||||
public class BootReceiver extends BroadcastReceiver {
|
public class BootReceiver extends BroadcastReceiver {
|
||||||
|
private String TAG = BootReceiver.class.getSimpleName();
|
||||||
public static final String BOOT_COMPLETED = "com.jiaoguanyi.appstore.intent.action.BOOT_COMPLETED";
|
public static final String BOOT_COMPLETED = "com.jiaoguanyi.appstore.intent.action.BOOT_COMPLETED";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
Log.e("BootReceiver", intent.getAction());
|
Log.e(TAG, "action:" + intent.getAction());
|
||||||
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
|
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
|
||||||
HTTPInterface.updateDeviceInfo(context);
|
HTTPInterface.updateDeviceInfo(context);
|
||||||
startService(context);
|
startService(context);
|
||||||
@@ -31,7 +32,7 @@ public class BootReceiver extends BroadcastReceiver {
|
|||||||
|| intent.getAction().equals("android.intent.action.USER_PRESENT")
|
|| intent.getAction().equals("android.intent.action.USER_PRESENT")
|
||||||
|| intent.getAction().equals("android.intent.action.SCREEN_ON")
|
|| intent.getAction().equals("android.intent.action.SCREEN_ON")
|
||||||
|| intent.getAction().equals("android.intent.action.SCREEN_OFF")
|
|| intent.getAction().equals("android.intent.action.SCREEN_OFF")
|
||||||
//测试
|
//测试
|
||||||
// || intent.getAction().equals("android.hardware.usb.action.USB_ACCESSORY_ATTACHED")
|
// || intent.getAction().equals("android.hardware.usb.action.USB_ACCESSORY_ATTACHED")
|
||||||
// || intent.getAction().equals("android.hardware.usb.action.USB_ACCESSORY_DETACHED")
|
// || intent.getAction().equals("android.hardware.usb.action.USB_ACCESSORY_DETACHED")
|
||||||
// || intent.getAction().equals("android.hardware.usb.action.USB_DEVICE_ATTACHED")
|
// || intent.getAction().equals("android.hardware.usb.action.USB_DEVICE_ATTACHED")
|
||||||
@@ -46,15 +47,15 @@ public class BootReceiver extends BroadcastReceiver {
|
|||||||
|
|
||||||
) {
|
) {
|
||||||
//除了USER_PRESENT应该都收不到
|
//除了USER_PRESENT应该都收不到
|
||||||
Log.e("fht", "BootReceiver MSG:" + intent.getAction());
|
// Log.e("fht", "BootReceiver MSG:" + intent.getAction());
|
||||||
startService(context);
|
// startService(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startService(Context context) {
|
private void startService(Context context) {
|
||||||
Intent intent=new Intent(context, InitJpushServer.class);
|
Intent intent = new Intent(context, InitJpushServer.class);
|
||||||
// intent.putExtra("boot","BOOT_COMPLETED");
|
// intent.putExtra("boot","BOOT_COMPLETED");
|
||||||
context.startService(intent);
|
context.startService(intent);
|
||||||
context.startService(new Intent(context, StepService.class));
|
context.startService(new Intent(context, StepService.class));
|
||||||
|
|||||||
@@ -363,7 +363,7 @@ public class MyJPushReceiver extends BroadcastReceiver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setLock_screen(int state, Context context, String name) {
|
private void setLock_screen(int state, Context context, String name) {
|
||||||
if (ServiceAliveUtils.isServiceAlice()) {
|
if (ServiceAliveUtils.isServiceAlice(context)) {
|
||||||
context.startService(new Intent(context, InitJpushServer.class));
|
context.startService(new Intent(context, InitJpushServer.class));
|
||||||
}
|
}
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ public class GuardService extends Service {
|
|||||||
@Override
|
@Override
|
||||||
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
|
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
|
||||||
LogUtils.e(TAG, "GuardService:建立链接");
|
LogUtils.e(TAG, "GuardService:建立链接");
|
||||||
boolean isServiceRunning = ServiceAliveUtils.isServiceAlice();
|
boolean isServiceRunning = ServiceAliveUtils.isServiceAlice(GuardService.this);
|
||||||
if (!isServiceRunning) {
|
if (!isServiceRunning) {
|
||||||
Intent i = new Intent(GuardService.this, MyDownloadService.class);
|
Intent i = new Intent(GuardService.this, MyDownloadService.class);
|
||||||
startService(i);
|
startService(i);
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class StepService extends Service {
|
|||||||
@Override
|
@Override
|
||||||
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
|
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
|
||||||
LogUtils.e(TAG, "StepService:建立链接");
|
LogUtils.e(TAG, "StepService:建立链接");
|
||||||
boolean isServiceRunning = ServiceAliveUtils.isServiceAlice();
|
boolean isServiceRunning = ServiceAliveUtils.isServiceAlice(StepService.this);
|
||||||
if (!isServiceRunning) {
|
if (!isServiceRunning) {
|
||||||
Intent i = new Intent(StepService.this, MyDownloadService.class);
|
Intent i = new Intent(StepService.this, MyDownloadService.class);
|
||||||
startService(i);
|
startService(i);
|
||||||
|
|||||||
@@ -670,12 +670,12 @@ public class ApkUtils {
|
|||||||
//10.0上日历和电子邮件是可卸载的
|
//10.0上日历和电子邮件是可卸载的
|
||||||
//7.0是系统应用
|
//7.0是系统应用
|
||||||
if (show_canremove_systemapp.contains(packageInfo.packageName)) {
|
if (show_canremove_systemapp.contains(packageInfo.packageName)) {
|
||||||
Logger.e("showAllAPP2", "packageName:" + packageInfo.packageName);
|
// Logger.e("showAllAPP2", "packageName:" + packageInfo.packageName);
|
||||||
pm.setApplicationEnabledSetting(packageInfo.packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
|
pm.setApplicationEnabledSetting(packageInfo.packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Logger.e("showAllAPP", "packageName:" + packageInfo.packageName);
|
// Logger.e("showAllAPP", "packageName:" + packageInfo.packageName);
|
||||||
pm.setApplicationEnabledSetting(packageInfo.packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
|
pm.setApplicationEnabledSetting(packageInfo.packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
|
||||||
hideSystemSettingAPP(context, packageInfo.packageName);
|
hideSystemSettingAPP(context, packageInfo.packageName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.mjsheng.myappstore.utils;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.NetworkCapabilities;
|
||||||
|
import android.net.NetworkInfo;
|
||||||
|
import android.os.Build;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
public class NetworkUtils {
|
||||||
|
public static boolean isConnected(Context context) {
|
||||||
|
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
|
if (Build.VERSION.SDK_INT >= 23) {
|
||||||
|
//获取网络属性
|
||||||
|
NetworkCapabilities networkCapabilities = mConnectivityManager.getNetworkCapabilities(mConnectivityManager.getActiveNetwork());
|
||||||
|
if (networkCapabilities != null) {
|
||||||
|
Log.e("Avalible", "NetworkCapalbilities:" + networkCapabilities.toString());
|
||||||
|
return networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
|
||||||
|
if (mNetworkInfo != null) {
|
||||||
|
return mNetworkInfo.isConnected();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,20 +7,19 @@ import android.util.Log;
|
|||||||
import com.mjsheng.myappstore.MyApplication;
|
import com.mjsheng.myappstore.MyApplication;
|
||||||
|
|
||||||
public class ServiceAliveUtils {
|
public class ServiceAliveUtils {
|
||||||
|
public static boolean isServiceAlice(Context mContext) {
|
||||||
public static boolean isServiceAlice() {
|
|
||||||
boolean isServiceRunning = false;
|
boolean isServiceRunning = false;
|
||||||
ActivityManager manager =
|
ActivityManager manager =
|
||||||
(ActivityManager) MyApplication.getAppContext().getSystemService(Context.ACTIVITY_SERVICE);
|
(ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
|
||||||
if (manager == null) {
|
if (manager == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
|
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
|
||||||
if ("com.mjsheng.myappstore.server.InitJpushServer".equals(service.service.getClassName())) {
|
if (mContext.getClass().getName().equals(service.service.getClassName())) {
|
||||||
isServiceRunning = true;
|
isServiceRunning = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Log.e("ServiceAliveUtils", "isServiceAlice: " + isServiceRunning);
|
Log.e("ServiceAliveUtils", mContext.getClass().getName() + "isServiceAlice: " + isServiceRunning);
|
||||||
return isServiceRunning;
|
return isServiceRunning;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.mjsheng.myappstore.utils;
|
||||||
|
|
||||||
|
import android.app.ActivityManager;
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SystemUtils {
|
||||||
|
|
||||||
|
public static boolean IsMainProcessName(Context cxt, int pid) {
|
||||||
|
String packageName = cxt.getPackageName();
|
||||||
|
ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
|
||||||
|
List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
|
||||||
|
if (runningApps == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) {
|
||||||
|
if (procInfo.pid == pid) {
|
||||||
|
return procInfo.processName.equals(packageName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user