2つ以上の行がある場合、WhatsApp通知からメッセージを取得する方法を探しています。Java Reflection Androidの内部クラスによるWhatsAppからのメッセージの取得
AndroidのReflectionから内部クラスのプライベート変数から値を取得しようとしています。私はInboxStyle通知を構築するために使用されるcharsequenceの 'mTexts' ArrayListを取得しようとしています。私はwhatsappからのメッセージを探しています。最後のwhats updateから、notificationListener()が複数行の通知を受け取った通知のEXTRAはありません(私は最初の行しか取得できません)。
行を得るための方法はそれだけの価値があります。
これは私のコードです。
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
super.onNotificationPosted(sbn);
Class[] declaredClasses = sbn.getNotification().getClass().getClasses();
for (Class c : declaredClasses){
if(c.getName().contains("Notification$InboxStyle")){
Class inboxStyleClass = c.getClass();
Field[] fields = inboxStyleClass.getDeclaredFields();
for(Field field : fields){
if(field.getName().contains("mText")){
Field fmText = null;
try {
fmText = inboxStyleClass.getDeclaredField("mTexts");
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
ArrayList<CharSequence> mTextsArrayList = null;
fmText.setAccessible(true);
try{
mTextsArrayList = (ArrayList<CharSequence>) fmText.get(**WICH OBJECT MAY USE HERE**);
}catch(IllegalAccessException e){
e.printStackTrace();
}
for(CharSequence value : mTextsArrayList){
Log.i("XXX","Results are: "+value.toString());
}
}
}
}
}
}
私が正しくMTEXTフィールドに達するが、私はそれから値を取得しcan't。
私はそれがうまく動作するかどうかを確認するために、新たなNotification.InboxStyle()オブジェクト
Notification.InboxStyle iStyleObjectToGetTheValue = new Notification.InboxStyle();
を使用することを試みたが、それは
inboxStyle = (ArrayList<CharSequence>) fmText.get(iStyleObjectToGetTheValue);
を行いますが、私は、通知から値を必要とします。どのように私はそれを達成することができますか?
私も)あなたがStatusBarNotification.getNotification(によって取得することができRemoteViewsを膨らませるメッセージ行を取得しようとしました。THE_REMOTE_VIEWDeviceMonitorを使用しているため、デバイスのscreenshootを取るとのIDを見ることができますビュー...しかしそれで運がなかった。
行を得るための方法はそれだけの価値があります。
すべてのヘルプが歓迎されます! ありがとうございます! RemoteView.applyのためのドキュメントによると
あなたは通知からcontentView/bigContentViewを取得し、テキストを見つけるためにそれらを点検することはできません:通知)を構築する場合にのみ使用する必要がありますか? –
リモートビューを検査するにはどうすればよいですか?-Iは、ビューのノードを取得することにより、検索が、didn't何も信頼性を...たぶん私は間違っていた.... bigContentViewを膨らましようとすると、nullポインタを取得 – Dan