update:2021.01.27
fix:修复应用安装信息上传 add:时间管控,顶部app管控
This commit is contained in:
@@ -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() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user