【问题标题】:Way to get current running foreground app/process获取当前正在运行的前台应用程序/进程的方法
【发布时间】:2019-10-01 06:47:35
【问题描述】:

我很好奇 Android 操作系统中是否有任何方法可以告诉应用程序刚刚启动。基本上,在我的应用程序中,我想通知我的应用程序将启动或刚刚启动应用程序。在这种情况下,如果用户(使用我的应用程序)已将其包含在阻止列表中,我想执行一些操作,例如阻止该应用程序。任何帮助或指导将不胜感激..

【问题讨论】:

标签: android service process broadcastreceiver


【解决方案1】:

先添加

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (!Settings.System.canWrite(context)) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS,
                            Uri.parse("package:" + getPackageName()));
                    startActivityForResult(intent, 200);
                }
            } else {
                //Do work
            }

      

【讨论】:

  • 您的方法 getTopAppName 始终返回我的应用程序运行天气,该天气在前台或后台。我以 3 秒的间隔保持该方法的使用。当我启动返回我的应用 pkg 名称的其他安装应用时
  • 我在获得许可后尝试弹出一个屏幕,其中包含一些 google 系统应用程序列表 google play 商店、服务和 pxiel 启动器。在该列表中没有列出我的应用程序
  • 我调用了 requestOpsPermission 然后它正在打开使用访问并显示允许的应用程序。它显示了除我的应用程序之外的其他应用程序。我想在获得此权限后,我需要调用 getlollpopFG 方法对吗?但是为什么我的应用没有列出来授予权限?
  • 我未经许可尝试过,然后 getLollipopFGAppPackageName 方法返回空字符串。有什么遗漏吗?
  • 现在我已经实现了你提到的方式,但是它正在打开修改系统设置屏幕并且有开关并且被禁用。那不是让我启用该开关有任何帮助吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
相关资源
最近更新 更多