HyperOS系统下,第三方应用通过AccessibilityService启动其他应用的正确方式
private void launchWeWork() {
Log.d(TAG, "=== 开始启动企业微信 ===");
try {
Intent intent = new Intent();
intent.setComponent(new ComponentName(WEWORK_PACKAGE, WEWORK_PACKAGE + ".launch.LaunchSplashActivity"));
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
| Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT
| Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
// 尝试使用 ActivityOptions
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
Bundle options = ActivityOptions.makeBasic().toBundle();
try {
startActivity(intent, options);
Log.d(TAG, "使用 ActivityOptions 启动企业微信");
} catch (Exception e) {
Log.e(TAG, "使用 ActivityOptions 启动失败,尝试普通启动");
startActivity(intent);
}
} else {
startActivity(intent);
}
} catch (Exception e) {
Log.e(TAG, "启动失败: " + e.getMessage());
e.printStackTrace();
}
}
我这样并不能启动,换别的手机可以。
设备环境:
手机型号:小米14 Pro
系统:HyperOS (版本号:2.0.11.0.VNBCNXM)
屏幕分辨率:3200×1440