statusbarService.java から通知の展開されたビューを取得し、それを aidl サービスを介して別のアプリケーションに渡そうとしています。
-frameworks/base/services/java/com/android/server/status/StatusBarService.java
private void makeStatusBarView(Context context) {
Resources res = context.getResources();
mRightIconSlots = res.getStringArray(com.android.internal.R.array.status_bar_icon_order);
mRightIcons = new StatusBarIcon[mRightIconSlots.length];
**ExpandedView expanded** = (ExpandedView)View.inflate(context,
com.android.internal.R.layout.status_bar_expanded, null);
}
この「拡張された」ビュー インスタンスをサービスを介して保存し、aidl を介してサービスにバインドするすべてのユーザーに渡したいと考えています。
サービスクラスを書きました。しかし、このビューをサービス インスタンスに渡す方法がわかりません。サービスにバインドするには、それがアクティビティまたはサービスである必要があります。StatusBarService.java は両方のどちらでもありません。したがって、このビュー インスタンスをサービスに渡す方法がわかりません。
何らかの形でビュー インスタンスがサービスに渡されたと仮定すると、ビュー インスタンスをサービスにバインドするすべてのユーザーに aidl 経由で渡す必要があります。したがって、ビューをメンバーとして取り、パーセル可能なクラスのインスタンスを返すパーセルバール クラスを作成する必要があることはわかっています。
パーセル経由でビュー インスタンスを記述する方法がわかりません。助言がありますか?バイト配列をいじる何かがあると思います。ビューインスタンスを変換してバイト配列として書き込む方法を知っている人はいますか?