2
    // fetch window manager object 
     mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
     // set layout parameter of window manager
     WindowManager.LayoutParams mParams = new WindowManager.LayoutParams(
                30, // width of layout 30 px
                200, // height is equal to full screen
                WindowManager.LayoutParams.TYPE_PHONE, // Type Ohone, These are non-application windows providing user interaction with the phone (in particular incoming calls).
                WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
               // WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH // this window won't ever get key input focus  
                PixelFormat.TRANSLUCENT
                );      
     mParams.gravity = Gravity.LEFT | Gravity.TOP;   
     //mParams.setTitle("Load Average");

     LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

     mWindowManager.addView(touchLayout, mParams);

     touchLayout.setOnTouchListener(this);

これはコードのほんの一部です。私の最初の問題は、これが行うビューでタッチを受信することでしたが、このサービスの実行中に他のアプリケーションの編集テキスト ボックスにタッチすると、ソフト キーボードが開きません。問題を修正するさまざまなフラグを試しましたが、上記のコードに表示されている画面の部分にタッチ イベントを登録する機能が失われています。

私はアイデアがありません。どこが間違っているのか、または Android 4.2.2+ の代替ソリューションを知っている人はいますか?

4

1 に答える 1

0

これを試して:

Dialog dialog = new Dialog(this,android.R.style.Theme_DeviceDefault_Dialog_NoActionBar_MinWidth);
    dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    dialog.setContentView(new EditText(this));
    dialog.show();
于 2013-11-01T09:19:20.377 に答える