【问题标题】:Expand Notifications Panel Programmatically Android以编程方式展开通知面板 Android
【发布时间】:2015-10-04 00:20:39
【问题描述】:

我正在创建一个具有扩展状态栏手势的 android 应用程序。我使用以下代码来扩展它。:

            try {
                Object sbservice = getSystemService("statusbar");
                Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
                Method showsb;
                if (Build.VERSION.SDK_INT >= 17) {
                    showsb = statusbarManager.getMethod("expandNotificationsPanel");
                } else {
                    showsb = statusbarManager.getMethod("expand");
                }

                showsb.invoke(sbservice);
            } catch (Exception e) {
                e.printStackTrace();
            }

我在模拟器上尝试过,它工作正常。但是当我在真实设备上尝试时,这会引发异常

SecurityException: Permission Denial: get/set setting for user asks to 以用户 -2 的身份运行,但从用户 0 调用;这需要 android.permission.INTERACT_ACROSS_USERS_FULL

有什么想法吗?

【问题讨论】:

  • 你能解决这个问题吗?如果解决了,请与我们分享您的解决方案。

标签: android statusbar


【解决方案1】:

android.permission.INTERACT_ACROSS_USERS_FULL 是签名级别的权限。除非它与系统具有相同的签名,否则您的应用将无法使用它。

【讨论】:

    【解决方案2】:

    你需要在 manifest.xml 中添加权限

    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 2012-12-03
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多