update:2021.01.27

fix:修复应用安装信息上传
add:时间管控,顶部app管控
This commit is contained in:
2021-01-27 16:11:05 +08:00
parent 5428846475
commit 32a61c38c3
29 changed files with 1579 additions and 306 deletions

View File

@@ -3,24 +3,85 @@ package com.info.sn.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.info.sn.bean.AppUploadInfo;
import com.info.sn.network.HTTPInterface;
import com.info.sn.utils.ApkUtils;
import java.util.ArrayList;
import java.util.List;
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;
public class APKinstallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
public void onReceive(final Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
String action = intent.getAction();
if (action.equals(Intent.ACTION_PACKAGE_ADDED) || action.equals(Intent.ACTION_PACKAGE_REPLACED)) {
if (action.equals(Intent.ACTION_PACKAGE_ADDED)
|| action.equals(Intent.ACTION_PACKAGE_REPLACED)
|| action.equals(Intent.ACTION_PACKAGE_REMOVED)) {
String packageName = intent.getDataString().replace("package:", "");
int code = ApkUtils.getAppVersionCode(context,packageName);
HTTPInterface.SendAppInstall(packageName,code ,1);
} else if (action.equals(Intent.ACTION_PACKAGE_REMOVED)) {
String packageName = intent.getDataString().replace("package:", "");
HTTPInterface.SendAppInstall(packageName,0 ,2);
Observable.create(new ObservableOnSubscribe<List<AppUploadInfo>>() {
@Override
public void subscribe(ObservableEmitter<List<AppUploadInfo>> emitter) throws Exception {
PackageManager pm = context.getPackageManager();
List<PackageInfo> list = pm.getInstalledPackages(0);
List<AppUploadInfo> uploadInfos = new ArrayList<>();
for (PackageInfo info : list) {
if ((info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1){
continue;
}
AppUploadInfo uploadInfo = new AppUploadInfo();
uploadInfo.setApp_package(info.packageName);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
uploadInfo.setApp_version_code(info.getLongVersionCode());
} else {
uploadInfo.setApp_version_code(info.versionCode);
}
uploadInfos.add(uploadInfo);
}
emitter.onNext(uploadInfos);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<AppUploadInfo>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(List<AppUploadInfo> appUploadInfos) {
String json = JSONArray.toJSONString(appUploadInfos);
HTTPInterface.SendAppInstall(json);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
}
}