我有一个无障碍服务,它必须打开一个活动时,一些条件是满足。
打开Activity的代码如下:
Intent intent = new Intent(WindowChangeDetectingService.this, OpenActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
我尝试过许多其他的标志,如FLAG_ACTIVITY_BROUGHT_TO_FRONT
或FLAG_ACTIVITY_REORDER_TO_FRONT
,并将action设置为:ACTION_PICK_ACTIVITY
,但它不会启动Activity。
我使用的是小米Mi9T,它不起作用,但一位同事使用华为,它确实对他有效,在模拟器(Pixel手机)上也有效。我该如何解决小米设备的问题?
1条答案
按热度按时间rfbsl7qr1#
**小米默认限制应用从后台启动活动。**您需要引导用户手动允许。(MIUI官方公告:https://www.xiaomi.cn/post/9216439)
打开此Intent,让用户手动允许权限“在后台启动”:
如何知道用户是否已允许此权限?下面是从Internet中找到的一段代码:
此外,对于小米权限管理器中的其他权限。获取小米手机,查询
AppOpsManager
中声明的所有常量。然后将declaredFields
替换为您想要的权限。