安卓应用禁止分屏模式方法 您所在的位置:网站首页 安卓分屏桌面怎么关闭 安卓应用禁止分屏模式方法

安卓应用禁止分屏模式方法

2024-06-02 15:48| 来源: 网络整理| 查看: 265

    因为很多应用的自身问题,在分屏模式下会出现layout错乱的现象。所以有些应用是不支持分屏模式的。下面我们介绍三种禁止分屏模式的方法。由最简单实用,到稍微麻烦但一律秒杀的。

方法一:

 我们会经常使用的,在AndroidManifest.xml文件中的application节点或者activity节点中添加如下:

android:resizeableActivity="false"

false表示不支持分屏模式,true表示支持分屏模式。

方法二:

我们可以在应用的Activity的onCreate()方法中去添加判断,以禁止分屏模式

import android.content.pm.PackageManager.NameNotFoundException; if (isInMultiWindowMode()){ Context ctx = null; try { ctx = this.createPackageContext("com.android.systemui", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); int stringId = ctx.getResources().getIdentifier( "dock_non_resizeble_failed_to_dock_text", "string", ctx.getPackageName()); String toast = ctx.getResources().getString(stringId); Toast.makeText(this, toast, Toast.LENGTH_SHORT).show(); } catch (NameNotFoundException ex) { Log.e(TAG, "[onCreate] NameNotFoundException ", ex); } finish(); }

思路就是调用activity的isInMultiWindowMode()方法去判断是否处在分屏模式下。

方法三:

终极办法,适用于第三方没有源码的apk,我们需要在systemui中去修改。

packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java ///导包 import android.widget.Toast; import android.app.ActivityManager.RunningTaskInfo; ///添加如下两个方法 public String getTopActivityPackageName() { String topActivityPackageName = null; try{ ActivityManager manager = (ActivityManager)getContext().getSystemService(Context.ACTIVITY_SERVICE); List list = manager.getRunningTasks(1); if(list != null &&!list.isEmpty() &&list.size()!=0&&list.get(0)!=null&&list.get(0).topActivity!=null){ topActivityPackageName =(list.get(0).topActivity).getPackageName(); Log.i(TAG, "getTopActivityPackageName = "+ topActivityPackageName); } }catch(Exception e){ Log.i(TAG,e.toString()); } return topActivityPackageName; } private boolean onLongPressRecents() { if (mRecents == null || !ActivityManager.supportsMultiWindow(getContext()) || !mDivider.getView().getSnapAlgorithm().isSplitScreenFeasible() || Recents.getConfiguration().isLowRamDevice) { return false; } ///新增判断 if ("第三方应用的包名".equals(getTopActivityPackageName())) { Toast.makeText(getContext(), R.string.dock_non_resizeble_failed_to_dock_text, Toast.LENGTH_SHORT).show(); return false; } ///}@ return mStatusBar.toggleSplitScreenMode(MetricsEvent.ACTION_WINDOW_DOCK_LONGPRESS, MetricsEvent.ACTION_WINDOW_UNDOCK_LONGPRESS); }

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有