Android 、AndroidQ 、小米、 oppo等【后台启动界面】问题 解决方案

banner传送门      圆形进度条  相机取景框

注: 机型适配  可以使用 如下方式 完成 适配(当发现不能正常弹出 权限弹窗,又不能正常调起页面)

比如 oppo 手机  直接在 方法后面加参数 即可 【"huawei", "oppo", "vivo","meizu"】

 BgStart.getInstance().requestStartPermisstion(this, new PermissionLisenter() {
            @Override
            public void onGranted() {
                Log.e(TAG, "onGranted");
            }

            @Override
            public void cancel() {
                Log.e(TAG, "cancel");
            }

            @Override
            public void onDenied() {
                Log.e(TAG, "onDenied");
            }
        },"opple");

需求:当android 手机 按了 home 键后  接到语音通话 需要 弹出 语音接听界面。

业务分析:当app 处于 后台状态下(按home键)接到socket 消息或者推送消息   然后 直接从后台 弹出界面。

最终效果:很多 新版(Android Q)、小米等手机 弹出不相关界面。测试和产品 组 要求修复。

经过探索发现 大部分手机 需要开启【悬浮窗权限】  小米等部分手机 需要开启【后台弹出界面】权限  

于是 就手写了一个 demo :希望有需要的同学 可以试试:

集成方式:项目 目录 build.gradle

  repositories {
        google()
        jcenter()
        
    }

项目build.gradle

dependencies {
	      implementation 'org.zhx.common:bgStart:1.1.2'
	}

非Androidx 项目 在gradle.properties 添加:

android.useAndroidX=true
android.enableJetifier=true

 

代码如下:

第一步:AndroidMenifest 添加

 

第二步:Application onCreat中 初始化

 @Override
    public void onCreate() {
        super.onCreate();
        BgManager.getInstance().init(this);
    }

第三步:使用前 请先申请权限 

    BgStart.getInstance().requestStartPermisstion(this, new PermissionLisenter() {
            @Override
            public void onGranted() {
                Log.e(TAG, "onGranted");
            }

            @Override
            public void cancel() {
                Log.e(TAG, "cancel");
            }

            @Override
            public void onDenied() {
                Log.e(TAG, "onDenied");
            }
        });

第二步:启动界面 从MainActivity  跳转到B  (activity)

  Intent intent = new Intent(MainActivity.this, TargetActivity.class);
                BgStart.getInstance().startActivity(MainActivity.this, intent, TargetActivity.class.getName());

DEMO 下载 持续更新

你可能感兴趣的:(后台弹出界面,悬浮窗,小米)