在后台运行时显示弹出窗口?

问题描述 投票:2回答:1

我正在尝试从扩展Service的类中打开一个活动。当应用程序不在前台/未使用时,我正在执行此任务。我在日志中看到我的服务类使用Intent.FLAG_ACTIVITY_NEW_TASK标志触发了启动活动。但是活动没有打开。但是,如果在前台/正在使用应用程序时服务触发相同的活动,则会打开该活动。

经过几次搜索后,我发现我需要在应用设置的其他权限部分中手动授予“在后台android中运行时显示弹出窗口”权限。

[显示在其他应用程序上的显示权限,SYSTEM_ALERT_WINDOW仅授予对“显示弹出窗口”的访问权限。

Other permissions

在上图中,SYSTEM_ALERT_WINDOW将仅授予您访问“显示弹出窗口”的权限,如果应用程序在前景中/正在使用中,则此方法可以正常工作。但是标记为红色(如果已授予)的权限将使您可以直接从扩展Service的类中打开任何活动。

如何检查或要求用户授予“在后台运行时显示弹出窗口”权限?或此权限受限制吗?

java android android-studio android-service android-permissions
1个回答
0
投票

尝试以下代码。

 Intent rIntent = context.getPackageManager()
                    .getLaunchIntentForPackage(context.getPackageName() );
            PendingIntent intent = PendingIntent.getActivity(
                    context, 0,
                    rIntent, PendingIntent.FLAG_CANCEL_CURRENT);
            AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            manager.set(AlarmManager.RTC, System.currentTimeMillis(), intent);
            System.exit(2);
© www.soinside.com 2019 - 2024. All rights reserved.