gpt4 book ai didi

android - 使用无障碍服务获取通知图标

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:55 24 4
gpt4 key购买 nike

有没有办法获取系统通知的图标?我可以获得带有辅助功能服务的通知包裹。我什至可以从中获取图标的 ID,但我被困在那里了。我不知道如何使用 id 获取实际位图以便显示它,因为它不是来 self 的 apk。

到目前为止,这是我的代码:

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
Log.d("onAccessibilityEvent");
if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
if (event.getParcelableData() instanceof Notification) {
Notification notification = (Notification) event.getParcelableData();

Log.d("ticker: " + notification.tickerText);
Log.d("icon: " + notification.icon);
Log.d("largeIcon: " + notification.largeIcon);

}

Log.d("notification: " + event.getText());
}
}

尝试使用这个 id 会导致

android.content.res.Resources$NotFoundException: Resource ID #0x7f0200ad

最佳答案

所以我设法通过在 RemoteViews 中搜索第一个 ImageView 来实现这一点

extractImage(notification.contentView); 
...
private void extractImage(RemoteViews views) {
LinearLayout ll = new LinearLayout(getApplicationContext());
View view = views.apply(getApplicationContext(), ll);
drawable = searchForBitmap(view);
Log.d("Drawable: " + drawable);
}

private Drawable searchForBitmap(View view) {
if (view instanceof ImageView) {
return ((ImageView) view).getDrawable();
}

if (view instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) view;
for (int i = 0; i < viewGroup.getChildCount(); i++) {
Drawable result = searchForBitmap(viewGroup.getChildAt(i));
if (result != null) {
return result;
}
}
}
return null;
}

关于android - 使用无障碍服务获取通知图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16257986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com