当前位置:   article > 正文

Android 后台服务打开(跳转)Activity(界面)国内支持_android后台服务打开activity

android后台服务打开activity

在后台保活一个服务即可后台打开前台Activity,后台服务都可以打开(跳转)activity

首先软件先确保软件具有悬浮窗权限

当然悬浮窗权限可以通过降低最高适配版本,强行获取权限,则无需申请权限

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
  1. import androidx.activity.result.ActivityResultLauncher;
  2. import androidx.activity.result.contract.ActivityResultContracts;
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.provider.Settings;
  7. public class MainActivity extends AppCompatActivity {
  8. private ActivityResultLauncher<String> launcher;
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.activity_main);
  13. // 创建ActivityResultLauncher实例
  14. launcher = registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> {
  15. if (isGranted) {
  16. // 已经获取悬浮窗权限,可以进行相关操作
  17. } else {
  18. // 未获取悬浮窗权限,可以提示用户或执行其他逻辑
  19. }
  20. });
  21. // 检查悬浮窗权限并请求
  22. checkAndRequestFloatingWindowPermission();
  23. }
  24. // 检查悬浮窗权限并请求
  25. private void checkAndRequestFloatingWindowPermission() {
  26. if (Settings.canDrawOverlays(this)) {
  27. // 已经获取悬浮窗权限,可以进行相关操作
  28. } else {
  29. // 未获取悬浮窗权限,请求权限
  30. launcher.launch(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
  31. }
  32. }
  33. }
  1. // 获取 WindowManager 实例
  2. WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
  3. // 创建悬浮窗口布局参数
  4. WindowManager.LayoutParams params = new WindowManager.LayoutParams(
  5. WindowManager.LayoutParams.WRAP_CONTENT,
  6. WindowManager.LayoutParams.WRAP_CONTENT,
  7. WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, // 悬浮窗口类型,注意需要申请悬浮窗权限
  8. WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, // 悬浮窗口不获取焦点
  9. PixelFormat.TRANSLUCENT); // 设置悬浮窗口背景透明
  10. params.width = 1; // 悬浮窗口的宽度
  11. params.height = 1; // 悬浮窗口的高度
  12. View floatView = new View(this);
  13. windowManager.addView(floatView, params);

在后台服务中创建悬浮窗1x1像素显示以后即可:

1.跳转打开Activity 

  1. Intent intent = new Intent(this, InjectionsActivity.class);
  2. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//这个必须要有
  3. intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
  4. intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
  5. startActivity(intent);

目前只有小米android13已成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/247542
推荐阅读
相关标签
  

闽ICP备14008679号