gpt4 book ai didi

Android,检测其他应用何时启动

转载 作者:IT老高 更新时间:2023-10-28 13:07:03 24 4
gpt4 key购买 nike

我正在尝试开发一个应用程序,以防止用户在没有密码的情况下访问指定的应用程序。场景是……

  1. 用户点击“电子邮件”应用(例如)
  2. 我的应用检测到应用的启动
  3. 我的应用确认它是“电子邮件”应用
  4. 我的应用在顶部打开一个 View ,要求输入密码
  5. 用户输入密码,如果正确,我的应用就会消失,而“电子邮件”应用会留在顶部

剩下的我没问题,只是第 2 部分让我感到困惑,经过很多天阅读广播 Intent 等并尝试在我的试验项目中收听“android.intent.action.MAIN”等似乎无法检测到我以外的应用程序何时启动。

有人可以帮忙吗?我是否以正确的方式来寻找新的应用程序来广播启动 Intent ,或者我应该阅读系统日志以获取新 Intent ,还是在 native 代码中执行某些操作?

任何指针都会有所帮助,即使你不能完全回答,我也可以做更多的研究。非常感谢。伊恩

最佳答案

我认为我们可以使用 logcat 并分析它的输出。

在所有类似的程序中我都找到了这个权限:

android.permission.READ_LOGS

这意味着他们都在使用它,但似乎程序启动了,之后我们的程序(应用程序保护器)将启动并带到前面。

使用下面的代码:

try
{
Process mLogcatProc = null;
BufferedReader reader = null;
mLogcatProc = Runtime.getRuntime().exec(new String[]{"logcat", "-d"});

reader = new BufferedReader(new InputStreamReader(mLogcatProc.getInputStream()));

String line;
final StringBuilder log = new StringBuilder();
String separator = System.getProperty("line.separator");

while ((line = reader.readLine()) != null)
{
log.append(line);
log.append(separator);
}
String w = log.toString();
Toast.makeText(getApplicationContext(),w, Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}

并且不要忘记在 Manifest 文件中添加它的权限。

关于Android,检测其他应用何时启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3290936/

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