gpt4 book ai didi

安卓锁应用

转载 作者:IT老高 更新时间:2023-10-28 22:05:53 24 4
gpt4 key购买 nike

我是新来的,我已经搜索过可以帮助我的问题,但我没有明确的答案。

我需要创建一个应用程序来阻止手机上的其他应用程序。我在市场上见过几个,但我想做一个。有没有办法知道用户何时尝试打开应用程序并提出 Activity ? (输入密码)。

我尝试使用 FileObserver,但仅适用于文件和目录(显然)。我可以在启动之前创建一个监听器来捕获其他应用程序的 Intent 吗?

我为我的英语道歉,感谢您的帮助!

最佳答案

不,如果没有某种 hack,您无法知道另一个应用程序何时启动。这是因为应用程序启动没有广播。

您可以做的是创建一个以固定时间间隔(例如 1000 毫秒)运行的服务,以检查前面的非系统应用程序。杀死该应用程序并从服务中弹出一个密码输入框。如果该密码正确,请重新启动该应用程序

这是一些代码示例

    timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
List<RunningAppProcessInfo> appProcesses= activityManager.getRunningAppProcesses();
for (RunningAppProcessInfo appProcess : appProcesses) {
try {
if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
if (!lastFrontAppPkg.equals((String) appProcess.pkgList[0])) {
apkInfo = ApkInfo.getInfoFromPackageName(appProcess.pkgList[0], mContext);
if (apkInfo == null || (apkInfo.getP().applicationInfo.flags && ApplicationInfo.FLAG_SYSTEM) == 1) {
// System app continue;
} else if (((apkInfo.getP().versionName == null)) || (apkInfo.getP().requestedPermissions == null)) {
//Application that comes preloaded with the device
continue;
} else {
lastFrontAppPkg = (String) appProcess.pkgList[0];
}
//kill the app
//Here do the pupop with password to launch the lastFrontAppPkg if the pass is correct
}
}
}
} catch (Exception e) {
//e.printStackTrace();
}
}
}
}, 0, 1000);

这里是 ApkInfo.getInfoFromPackageName()

    /**
* Get the ApkInfo class of the packageName requested
*
* @param pkgName
* packageName
* @return ApkInfo class of the apk requested or null if package name
* doesn't exist
* @see ApkInfo
*/
public static ApkInfo getInfoFromPackageName(String pkgName,
Context mContext) {
ApkInfo newInfo = new ApkInfo();
try {
PackageInfo p = mContext.getPackageManager().getPackageInfo(
pkgName, PackageManager.GET_PERMISSIONS);

newInfo.appname = p.applicationInfo.loadLabel(
mContext.getPackageManager()).toString();
newInfo.pname = p.packageName;
newInfo.versionName = p.versionName;
newInfo.versionCode = p.versionCode;
newInfo.icon = p.applicationInfo.loadIcon(mContext
.getPackageManager());
newInfo.setP(p);
} catch (NameNotFoundException e) {
e.printStackTrace();
return null;
}
return newInfo;
}

关于安卓锁应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7248080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com