2012-04-09 7 views
5

デバイスをクライアントに提供する予定で、ボタンで私たちに電話する必要があります。それは以下のんのでonClick()私は、ヘルプデスクPHONENUMBERを呼び出すボタンがありActivity私のフルスクリーンで:TYPE_KEYGUARDは、電話をかけた後もフルスクリーンモードを維持します。

try { 
     Intent intent = new Intent(Intent.ACTION_CALL); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
     intent.setData(Uri.parse("tel:" + phoneNumber)); 
     mContext.startActivity(intent); 
    } catch (Exception e) { 
     Toast.makeText(mContext, mContext.getString(R.string.couldntcall), Toast.LENGTH_LONG).show(); 
    } 

ダイヤラが閉じると、突然、タイトルバーが表示されたまま、 - 私はそれを推測することはオーバーライドとは何かを持っていますHOMEボタン:

@Override 
public void onAttachedToWindow() 
{ //HOMEBUTTON 
    if(OnLockMode()) 
    { 
     this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
      super.onAttachedToWindow(); 
    } 
    else 
    { 
     this.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION); 
     super.onAttachedToWindow(); 
    } 
} 

誰かがこの問題の解決策を持っていますか?

私は次のことを試してみました:

私はマニフェストに入れる:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 

OnCreateで使用:

requestWindowFeature(Window.FEATURE_NO_TITLE); 

そして両方onCreate()ならびにonResume()に:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 

まだタイトルバーが表示されています。

答えて

-1

これをマニフェストに追加します。 onCreate内部

<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/> 

()home_view XMLファイルの親ビューである

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_home); 
    View v = findViewById(R.id.home_view); 
    v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); 

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
      return false; 
     } 

public void onWindowFocusChanged(boolean hasFocus) 
    { 
      try 
      { 
       if(!hasFocus) 
       { 
        Object service = getSystemService("statusbar"); 
        Class<?> statusbarManager = Class.forName("android.app.StatusBarManager"); 
        Method collapse = statusbarManager.getMethod("collapse"); 
        collapse .setAccessible(true); 
        collapse .invoke(service); 
       } 
      } 
      catch(Exception ex) 
      { 
      } 
    } 

ホームイベントをキャプチャすることはできません。唯一可能なのは、アプリケーションのホームカテゴリを指定してユーザーに選択させることです。

<category android:name="android.intent.category.HOME" /> 
+0

起動するアプリを選択する必要があります。 – AndroidDev

関連する問題