【问题标题】:Android Permission denied for window type 2007窗口类型 2007 的 Android 权限被拒绝
【发布时间】:2018-01-18 23:18:49
【问题描述】:

我在我的项目中使用这个库:https://github.com/recruit-lifestyle/FloatingView

我收到了这个错误: Click here for picture of error

这个库不适用于棉花糖和牛轧糖。

代码:

 final LayoutInflater inflater = LayoutInflater.from(bCon);
  final ImageView iconView = (ImageView)     inflater.inflate(R.layout.widget_chathead, null, false);

 final DisplayMetrics metrics = new DisplayMetrics();
         final WindowManager windowManager = (WindowManager)bCon.getSystemService(Context.WINDOW_SERVICE);
         windowManager.getDefaultDisplay().getMetrics(metrics);
         mFloatingViewManager = new FloatingViewManager(bCon, this);
         mFloatingViewManager.setFixedTrashIconImage(R.drawable.ic_trash_fixed);
         mFloatingViewManager.setActionTrashIconImage(R.drawable.ic_trash_action);
         final FloatingViewManager.Options options = new FloatingViewManager.Options();
         options.overMargin = (int) (16 * metrics.density);
         mFloatingViewManager.addViewToWindow(iconView, options);

【问题讨论】:

  • @EJoshuaS 无法添加窗口 android.view.ViewRootlmpl$W@b003ace -- 窗口类型 2007 的权限被拒绝

标签: java android view permissions window


【解决方案1】:

这个库使用SYSTEM_ALERT_WINDOW权限

从 android M 开始,每个请求 SYSTEM_ALERT_WINDOW 权限并通过 Play 商店安装的应用程序(需要 6.0.5 或更高版本)都将自动获得该应用程序的权限。

如果应用程序不是从 Play 商店安装的,则不会自动授予权限。您必须在运行时手动请求此权限,就像从 Android M 及更高版本处理其他危险权限一样。

【讨论】:

  • 如何在 google play 上获取系统警报窗口应用程序?我没找到
  • 它不是一个应用程序。这意味着如果您的应用程序使用该权限,那么如果从 Play 商店下载,它将自动获得。但是如果你从其他地方安装,你将不得不通过代码手动请求权限。
  • 好的,那么我如何在 Play 商店中获得系统警报窗口?因为没有安装
  • @TahsinVural 正如 Kapil 所说,这是许可而不是应用程序……您无处可下载。 android 使用权限允许您的应用使用 android 功能,如相机、sd 卡和......从 android 版本 6 开始,其中一些权限被标记为危险权限,您在运行时也授予它检查此链接developer.android.com/training/permissions/requesting
猜你喜欢
  • 1970-01-01
  • 2019-02-03
  • 1970-01-01
  • 2018-02-22
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 2023-02-09
  • 2013-07-03
相关资源
最近更新 更多