安卓手机开启无障碍功能与悬浮窗的方法

安卓手机开启无障碍功能与悬浮窗的方法,第1张

怎么开启辅助服务?

使用优Q的功能必须开服辅助服务,辅助服务是安卓官方提供的功能。

打开优Q点击我的点击权限设置,开启即可。如果无法快速开启,请参考如下的方法。

部分手机辅助可通过快捷键开启,优Q仍提示未开启,将辅助服务关闭一下再打开就可以了。

如果仍然无效,请先关闭优Q然后重启手机。

VIVO设置-更多设置-辅助功能-开启-优Q

OPPO设置-其他设置-辅助功能-开启-优Q

小米设置-更多设置-无障碍-开启-优Q

魅族设置-辅助功能-无障碍-开启-优Q

华为设置-高级设置-辅助功能-开启-优Q

联想设置-高级设置-辅助功能-开启-优Q

三星设置-辅助功能-开启-优Q

乐视设置-辅助功能-开启-优Q

360设置-辅助功能-开启优Q

锤子设置-全局高级设置-辅助功能-开启-优Q

一加设置-其他高级设置-无障碍-开启-优Q

怎么开启悬浮窗?

部分高版本手机打开优Q会自动跳转到悬浮窗开关。

打开优Q点击我的点击权限设置,开启悬浮窗即可。如果无法快速开启,请参考如下的方法。

不同的手机打开悬浮窗权限的方法不一样,常见的方法是在应用权限管理或手机管家进行设置。

VIVO

系统60:设置-更多设置-权限管理-优Q-开启悬浮窗系统

50:i管家-软件管理-悬浮窗管理-开启-"优Q

OPPO手机管家-隐私权限-悬浮窗权限管理-开启

优Q

小米安全中心-应用权限管理-优Q-允许显示悬浮窗

魅族手机管家-应用权限管理-优Q-开启桌面悬浮窗

华为设置权限管理-悬浮窗开启优Q

联想安全中心-权限管理-显示悬浮窗-

允许"优Q显示悬浮窗

三星设置-应用程序-应用程序管理器-右上角更多-

可出现在顶部的应用程序-开启优Q

乐视设置-隐私权限-应用权限管理器-应用列表

优Q-允许显示悬浮窗

360安全卫士-软件管理-权限管理-优Q-

允许显示悬浮窗

锤子设置-安全中心-应用程序权限管理-悬浮窗-

开启优Q

一加设置-应用程序-特殊访问权限-出现在其他应用上--找到优Q打开即可

三条鱼软件官网

安卓悬浮窗设置 原创

2021-08-01 20:14:18

andycao

码龄14年

关注

1、悬浮窗不能在当前app中展示

使用activity中的moveTaskToBack(true),获得的悬浮窗效果。

要修改AndroidManifestxml中

对应的VideoChatViewActivity的模式一定不要用singleTop,修改成singleInstance

如果用singleTop,会认为当前activity就是root,不能获得想要的结果。

一定要修改成这样

2、悬浮窗开发

a、语音通话

浮窗显示一张

b、视频通话

浮窗需要显示对方的视频

上代码

1、service

2、activity

3、布局文件

4、授权,老版本不需要,新版本则需要授权

若使用的是vivo手机,可尝试以下方法:1、重启手机试试;2、前往将悬浮球关闭后重新开启试试;3、进入设置--系统升级(部分机型为:设置--我的设备--iQOOUI版本),查看系统版本信息。如果不是最新版本,建议升级最新系统体验。4、可以进入手机设置--系统管理/更多设置--备份与重置/恢复出厂设置中还原所有设置。此 *** 作不会删除手机中的数据,会还原手机中的所有设置,包括:设置的壁纸、解锁样式、WiFi、默认开启程序等,并且,手机中登录的第三方软件账号也需重新登录。

安卓悬浮窗的辅助是用Android的WindowManager写的。根据查询安卓悬浮窗官网得知,WindowManager是Android系统中的一个系统服务,可以用于管理应用程序窗口的显示和布局。通过WindowManager,我们可以在应用程序的窗口之上添加一个悬浮窗口,并可以对悬浮窗口进行位置、大小、背景、透明度等属性的设置,实现悬浮窗口的显示和控制。

安卓13悬浮窗卡屏免root解决方法。

1、清除悬浮窗缓存:打开手机设置,找到应用程序管理,然后找到悬浮窗应用程序,清除缓存和数据,重新启动悬浮窗应用程序,看看是否能够解决卡屏问题。

2、关闭其他应用程序:关闭其他正在运行的应用程序,释放手机的内存和CPU资源,让悬浮窗程序能够更加流畅地运行。

3、升级手机系统:如果您的手机系统较老,可以尝试升级到最新的版本,因为最新的系统版本通常会修复一些已知的卡屏问题。

当我们在使用的app的时候,如果需要实时观测到某个功能的实时进度并且不影响其他的 *** 作的时候或者不影响使用其他应用的时候,系统级的悬浮球是个非常不错的选择。

public class QueueUpFloatService extends Service {

/

启动服务并传值

@param activity 启动服务的activity

@param modeBean 数据对象

/

public static void launchService(Activity activity, ModeBean modeBean) {

try {

        Intent intent =new Intent(activity, QueueUpFloatServiceclass);

        Bundle bundle =new Bundle();

        bundleputSerializable(KEY_MODEL, modeBean);

        intentputExtras(bundle);

        activitystartService(intent);

    }catch (Exception e) {

        eprintStackTrace();

    }

}

    @Override

    public void onCreate() {

            superonCreate();

    }

    @Override

    public IBinder onBind(Intent intent) {

            return null;

    }

    @Override

    public int onStartCommand(Intent intent, int flags, int startId) {

            return superonStartCommand(intent, flags, startId);

    }

    @Override

    public void onDestroy() {

            superonDestroy();

    }

}

@Override

public void onCreate() {

    superonCreate();

    //加一点简单的动画 

    buttonScale = (ScaleAnimation) AnimationUtilsloadAnimation(this, Ranimanim_float);

    windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

    layoutParams =new WindowManagerLayoutParams();

    if (BuildVERSIONSDK_INT >= BuildVERSION_CODESO) {

            layoutParamstype = WindowManagerLayoutParamsTYPE_APPLICATION_OVERLAY;

    }else {

            layoutParamstype = WindowManagerLayoutParamsTYPE_PHONE;

    }

    layoutParamsformat = PixelFormatRGBA_8888;

    layoutParamsgravity = GravityLEFT | GravityTOP;

    layoutParamsflags = WindowManagerLayoutParamsFLAG_NOT_TOUCH_MODAL |             WindowManagerLayoutParamsFLAG_NOT_FOCUSABLE;

    layoutParamswidth = ScreenUtilsdp2px(66);

    layoutParamsheight = ScreenUtilsdp2px(66);

    layoutParamsx = ScreenUtilsgetRealWidth() - ScreenUtilsdp2px(60);

    layoutParamsy = ScreenUtilsdeviceHeight() 2 /3;

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

    ModeBean modeBean = (ModeBean) intentgetExtras()getSerializable(KEY_MODEL);

    LayoutInflater layoutInflater = LayoutInflaterfrom(this);

    floatView = layoutInflaterinflate(Rlayoutview_float, null);

    RelativeLayout rlFloatParent =floatViewfindViewById(Ridrl_float_parent);

    rlFloatParentstartAnimation(buttonScale);

    TextView tvIndex =floatViewfindViewById(Ridtv_queue_index);

    tvIndexsetText(modeBeantitle);

    floatViewfindViewById(Ridiv_close_float)setOnClickListener(v -> stopSelf());

    //修改悬浮球的滑动实现

    floatViewsetOnTouchListener(new FloatingOnTouchListener());

    windowManageraddView(floatView, layoutParams);

    return superonStartCommand(intent, flags, startId);

}

private class FloatingOnTouchListenerimplements ViewOnTouchListener {

    private int x;

    private int y;

    private long downTime;

    @SuppressLint("ClickableViewAccessibility")

    @Override

    public boolean onTouch(View view, MotionEvent event) {

            switch (eventgetAction()) {

                case MotionEventACTION_DOWN:

                        downTime = SystemcurrentTimeMillis();

                        x = (int) eventgetRawX();

                        y = (int) eventgetRawY();

                        break;

                case MotionEventACTION_MOVE:

                        int nowX = (int) eventgetRawX();

                        int nowY = (int) eventgetRawY();

                        int movedX = nowX -x;

                        int movedY = nowY -y;

                        x = nowX;

                        y = nowY;

                        layoutParamsx =layoutParamsx + movedX;

                        layoutParamsy =layoutParamsy + movedY;

                        windowManagerupdateViewLayout(view, layoutParams);

                        break;

                case MotionEventACTION_UP:

                        /

                         这里根据手指按下和抬起的时间差来判断点击事件还是滑动事件

                         /

                        if ((SystemcurrentTimeMillis() -downTime) <200) {

                                //检测应用在前台还是后台

                                if (AppUtilsisAppIsInBackground()) {

                                        AppUtilsmoveToFront(CloseActivityUtilsactivityListget(CloseActivityUtilsactivityListsize() -1)getClass());

                                } else {

                                        //检测栈顶是否为SecondActivity 不是就打开SecondActivity

                                      if (!CloseActivityUtilsactivityListget(CloseActivityUtilsactivityListsize() -1)

                                                getClass()getSimpleName()contains("SecondActivity")) {

                                        SecondActivitylaunchActivity(CloseActivityUtilsactivityListget(CloseActivityUtilsactivityListsize() -1));

                                }

                      }

            }

                        break;

            default:

                        break;

        }

           return false;

    }

}

        @Override

        public void onDestroy() {

            superonDestroy();

            if (null ==floatView) {

                return;

               }

            windowManagerremoveView(floatView);

            windowManager=null;

}

以上就是关于安卓手机开启无障碍功能与悬浮窗的方法全部的内容,包括:安卓手机开启无障碍功能与悬浮窗的方法、安卓添加白色悬浮窗、安卓12悬浮窗开启屏幕点不动等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9639796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存