Android のシステム サービスを介して Listener を渡したい。AIDL を使用してリスナー インターフェースを作成しました。
IStatusBarLostFocusCallback.aidl の内容:
package com.android.internal.statusbar;
interface IStatusBarLostFocusCallback {
void onLostFocus();
}
次に、次の関数で Android の IStatusBarService.aidl を拡張しました。
void setStatusBarLostFocusCallback(in IStatusBarLostFocusCallback listener);
また、私のインターフェースを(同じディレクトリに)インポートしました
import com.android.internal.statusbar.IStatusBarLostFocusCallback;
Androids StatusBarManagerService では、この Thread: Android remote service callbacks like thisでこれを行うことを読んだので、このインターフェイスを拡張しました。
public interface StatusBarLostFocusCallback extends IStatusBarLostFocusCallback {
public void onLostFocus();
}
setStatusBarLostFocusCallback
ここで、で定義IStatusBarService.aidl
および実装されている でリスナーを設定したいと思いStatusBarManagerService.java
ます。
ただし、フレームワークをコンパイルしようとすると、次のエラーが発生します
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/com/android/internal/statusbar/IStatusBarService.java:287: cannot find symbol
symbol : class IStatusBarLostFocusCallback
location: package com.android.internal.statusbar
com.android.internal.statusbar.IStatusBarLostFocusCallback _arg0;
私は何を逃したのですか。に を書く必要が.java
ありIStatusBarLostFocusCallback
ますか? もしそうなら、そこには何がありますか?