私のアプリはアクセシビリティ API を使用して、他のアプリによって生成された通知をキャッチし、それらに対応しています。元の通知 (他のアプリによって生成されたもの) をキャンセルできる機能を追加したいと考えています。
通知マネージャーを使用する通常の方法は機能しません。通知をクリアするには、通知を作成した人でなければならないからです。アクセシビリティ API を使用すると、別のアプリの通知を読み取ることができますが、それをクリアすることもできますか?
ありがとう!
私のアプリはアクセシビリティ API を使用して、他のアプリによって生成された通知をキャッチし、それらに対応しています。元の通知 (他のアプリによって生成されたもの) をキャンセルできる機能を追加したいと考えています。
通知マネージャーを使用する通常の方法は機能しません。通知をクリアするには、通知を作成した人でなければならないからです。アクセシビリティ API を使用すると、別のアプリの通知を読み取ることができますが、それをクリアすることもできますか?
ありがとう!
いいえ、他のアプリの通知をクリアすることはできません (ありがたいことに)。
public void onAccessibilityEvent(AccessibilityEvent event) {
// TODO Auto-generated method stub
if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
//Do something, eg getting packagename
final String packagename = String.valueOf(event.getPackageName());
final String text = String.valueOf(event.getText());
if(TARGET_PACKAGE.equals(packagename)){
Notification n = (Notification) event.getParcelableData();
try{
n.deleteIntent.send(this,0,new Intent());
}catch(Exception e){e.printStackTrace();}
}
}
通知の deleteIntent が既に定義されている場合は、キャンセルできます。