我正在使用通知侦听器来暂停不需要的通知,但是一旦我的应用不再运行,我该如何取消暂停这些通知?目前,我发现这样做的唯一方法是用户必须重新启动他们的手机。
这就是我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) 我正在使用无障碍服务在屏幕上找到一个按钮并单击它,但由于某种原因,我收到以下错误:
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工作室到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)