0

DialpadFragment で作成しましたが、MO 呼び出しが行われると、InCallScreen が常にボタンをオーバーレイしていました。これが私のコードです:

private void createStopButton() {
    if (mstopButton == null) {
        mstopButton = new Button(mActivity);
        mstopButton.setText("Stop Dial");
    }


    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY|
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|
            WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
            PixelFormat.OPAQUE);
     params.gravity = Gravity.CENTER | Gravity.TOP;


    final WindowManager wm = (WindowManager)mActivity.getSystemService(Context.WINDOW_SERVICE);

    mstopButton.setOnClickListener( new View.OnClickListener() {
        public void onClick(View view) {
            mIsRedialStatus = false;
            wm.removeView(mstopButton);
        }
    });

    wm.addView(mstopButton, params);
}

誰でもボタンを画面の上部に表示する方法を修正できます。私はインターネットで多くのコードを調査しましたが、最上位層に関連するコードをサービスに配置していることがわかりました。サービスでも実装する必要がありますか?どうもありがとう!

4

1 に答える 1