オブジェクトからできるだけ多くの情報を取得したいと考えてStatusBarNotification
います。現在、アクセスできる唯一の「信頼できる」情報はtickerText
-property です。次のコードを使用して通知のタイトルとテキストを 経由RemoteViews
で取得していますが、多くの場合、タイトルやテキストは単純に null になります :-(:
//Get the title and text
String mTitle = "";
String mText = "";
try {
RemoteViews remoteView = sbn.getNotification().contentView;
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewGroup localView = (ViewGroup) inflater.inflate(remoteView.getLayoutId(), null);
remoteView.reapply(getApplicationContext(), localView);
TextView tvTitle = (TextView) localView.findViewById(android.R.id.title);
TextView tvText = (TextView) localView.findViewById(16908358);
mTitle = (String)tvTitle.getText();
mText = (String)tvText.getText();
} catch (Exception e){
Log.e(TAG, "Error getting notification title/text: " + e);
}
代替の(より信頼できる)方法はありますか?Gmail や SMS などの「人気のある」通知のリソース ID を「手作業でコーディング」することもできますが、これらのアプリが更新されるといつでも機能しなくなる可能性があります。ありがとう!