小编use*_*081的帖子

取消暂停通知

我正在使用通知侦听器来暂停不需要的通知,但是一旦我的应用不再运行,我该如何取消暂停这些通知?目前,我发现这样做的唯一方法是用户必须重新启动他们的手机。

这就是我getSnoozedNotifications暂停通知的方式,我发现我可以用来获取暂停的应用程序列表,但是取消暂停它的命令是什么?

snoozeNotification(sbn.getKey(), Long.MAX_VALUE - System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)

这就是我获得暂停应用程序的方式,我找不到任何告诉我取消暂停它的命令的地方,我什至尝试将持续时间设置为0.

private void clearSnoozedNotifications()
{
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        StatusBarNotification sbns[] = getSnoozedNotifications();
        for (StatusBarNotification sbn : sbns) {
            try {
                if (sbn == null) {
                    Log.e("Notification Listener", "sbn is null");
                    return;
                }

                Log.e("Notification Listener", "Starting: " + sbn.getKey());
                snoozeNotification(sbn.getKey(), 0);
            } catch (Exception e) {
                Log.e("Notification Listener", "error: " + e.getMessage());
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

android notification-listener

5
推荐指数
1
解决办法
829
查看次数

java.lang.IllegalStateException:无法对未密封的实例执行此操作

我正在使用无障碍服务在屏幕上找到一个按钮并单击它,但由于某种原因,我收到以下错误:

java.lang.IllegalStateException: Cannot perform this action on a not sealed instance.
    at android.view.accessibility.AccessibilityNodeInfo.enforceSealed(AccessibilityNodeInfo.java:3046)
    at android.view.accessibility.AccessibilityNodeInfo.findAccessibilityNodeInfosByText(AccessibilityNodeInfo.java:1529)
    at com.myapp.adapters.Adapter_Click$11.run(Adapter_Click.java:1874)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6718)
    at java.lang.reflect.Method.invoke(Method.java:-2)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Run Code Online (Sandbox Code Playgroud)

它所指的行是:

List<AccessibilityNodeInfo> list = source.findAccessibilityNodeInfosByText("Accept".toLowerCase());
Run Code Online (Sandbox Code Playgroud)

然后我用它来点击按钮:

if (view.performAction(AccessibilityNodeInfo.ACTION_CLICK)) 
{
  Log.e(TAG, "Button clicked");
}
Run Code Online (Sandbox Code Playgroud)

去年我没有看到任何问题,直到我最近更新到 AndroidX。有没有办法在尝试单击它之前检查它是否是密封的实例?我什至尝试将它包装在 try/catch 中,但它仍然使我的应用程序崩溃。

android accessibilityservice

5
推荐指数
1
解决办法
2013
查看次数

Android工作室更新和现在的应用程序将无法运行

所以我今天早上更新了我的android工作室到3.1.1然后去更改一些代码并再次运行我的应用程序,但我一直收到错误,不知道如何修复它,我搜索了SO和谷歌,但还没有看到与此有关的任何事情.在尝试构建或运行应用程序时,我也尝试过清理和重建以及同样的错误.

org.gradle.initialization.ReportedException: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':app:transformDexWithInstantRunDependenciesApkForDebug'.

Caused by: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':app:transformDexWithInstantRunDependenciesApkForDebug'

Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexWithInstantRunDependenciesApkForDebug' 

Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: Failed to execute aapt 

Caused by: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: Failed to execute aapt

Caused by: com.android.ide.common.process.ProcessException: Failed to execute aapt

Caused by: java.util.NoSuchElementException
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin

0
推荐指数
1
解决办法
2192
查看次数