オブジェクトからテキストを取得する必要がありRemoteViews
ます。LayoutIdを取得することは可能ですが、これに含まれるテキストTextView
(RemoteView
つまり通知)からテキストを取得する方法がわかりません。
また、RemoteView
セッターのみが含まれていますが、ゲッターは含まれていないため、LayoutIdを使用する必要があると思います(どういうわけか)。
それを手伝ってくれませんか。ありがとう!
/ edit:私がこれを求めている理由はAccessibilityService
、通知を取得するを持っているからです。したがって、これが値を取得する唯一の方法です。
/ edit2:通知を受け取るためにこのコードを使用します:
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
List<CharSequence> notificationList = event.getText();
for (int i = 0; i < notificationList.size(); i++) {
Toast.makeText(this.getApplicationContext(), notificationList.get(i), 1).show();
}
if (!(parcel instanceof Notification)) {
return;
}
final Notification notification = (Notification) parcel;
doMoreStuff();
}
}
オブジェクトを使用して、 ()と( )notification
にアクセスできます。layoutIdを取得するには、RemoteViews
notification.contentView
PendingIntent
notification.contentIntent
contentView.getLayoutId()