怎么开启辅助服务?
使用优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悬浮窗开启屏幕点不动等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)