0
私は簡単なアプリケーションデモを作成し、私のサービスクラスにレイアウトを作成しました。 サービスクラスでレイアウトを作成しました。ユーザーがホームキーをクリックしたときにこのレイアウトを非表示にする必要があります。ホームキーを聞くには?
サンプルhereが見つかりました。setOnKeyListener
とsetOnFocusChangeListener
が実装されていますが、ホームボタンをクリックしても表示されません。
私のサービスクラスコード:
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
super.onCreate();
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT
);
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.service_layout, null);
view.setFocusable(true);
wm.addView(view, params);
view.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.i("FROM", "HOME OR OTHER KEY PRESSED");
return false;
}
});
view.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
Log.i("FROM", "HOME OR OTHER KEY PRESSED");
}
});
}
}
Imは自宅で、今のマニフェストXMLを示す.inないおかげでアクションを追加したりしないように必要がありますか? <意図-フィルタ> <アクションアンドロイド:名= "android.intent.action.CLOSE_SYSTEM_DIALOGS" /> 目的: –
はXML <名前= "com.mengdd.hellohome.HomeWatcherReceiver" 受信アンドロイド>を追加する必要があります-filter> – Alan
私は自分のプロジェクトに追加しましたが、まだ動作しません。私はテストアプリケーションをアップロードしているので、私はそれが必要な私を助けてください。 www.amozkade.ir/TsetHomeButtonService.rar –