我已在我的应用程序中添加了android可访问性,并且它与preeo设备兼容,但在oreo中,我无法收到该应用程序的第二次通知。
我只能收到该应用的第一条通知,而该应用无法收到第二条通知。如果我要从通知托盘清除通知,则可以接收第一个通知,而第二个以后未收到。
例如
简而言之,第二个以后的通知可访问性会在应用程序的oreo中被忽略。
我的辅助功能代码
public class NotificationService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent evt) {
Toast.makeText(this, "Got event from " + evt.getPackageName(),
Toast.LENGTH_SHORT)
.show();
}
@Override
public void onInterrupt() { }
}
我的清单文件:
<application>
<activity
android:name=".MyActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".NotificationService" android:enabled="true"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
<meta-data
android:name="android.accessibilityservice"
android:resource="@xml/accessibility_service_config" />
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService" />
</intent-filter>
</service>
</application>
答案 0 :(得分:0)
可访问性服务可能会在不通知用户的情况下停止,这是一个已知问题。请参考以下代码,以检查服务是否仍在运行。
#!/usr/bin/env python3
# *-* coding: utf-8 *-*
from oscrypto import asymmetric
from endesive import pdf
def main():
dct = {
b'sigflags': 3,
b'contact': b'me@email.com',
b'location': b'City',
b'signingdate': b'20180731082642+02\'00\'',
b'reason': b'Some descriptive message',
}
p12 = asymmetric.load_pkcs12(
open('demo2_user1.p12', 'rb').read(),
'1234'
)
datau = open('pdf.pdf', 'rb').read()
datas = pdf.cms.sign(datau, dct, p12[0], p12[1], [], 'sha256')
with open('pdf-signed-cms.pdf', 'wb') as fp:
fp.write(datau)
fp.write(datas)
main()
尝试在服务中使用此方法,以免您一次又一次错过通知。希望它会有所帮助。如果有帮助,请接受答案。 谢谢。