2012-04-09 10 views
5

Daremo i dispositivi ai clienti e loro devono essere in grado di chiamarci con un pulsante. Nel mio fullscreen Activity ho un tasto che chiama la phonenumber helpdesk, quindi onClick() lo fa il seguente:TYPE_KEYGUARD mantiene la modalità a schermo intero dopo aver effettuato una chiamata

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(); 
    } 

Quando il combinatore chiude, improvvisamente la barra del titolo rimane visibile, sto cercando di indovinare che ha qualcosa a che fare con l'override il pulsante 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(); 
    } 
} 

qualcuno ha una soluzione per questo problema?

ho provato la seguente:

ho messo nel manifesto:

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

e utilizzati in OnCreate:

requestWindowFeature(Window.FEATURE_NO_TITLE); 

e in entrambi i onCreate() così come in onResume():

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

Ancora viene mostrata la barra del titolo.

risposta

-1

aggiungi questo in manifest.

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

all'interno onCreate()

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); 

dove home_view è la vista padre del file xml.

@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) 
      { 
      } 
    } 

non è possibile catturare la gara di casa, l'unica cosa è che si può fare è quello di dare la vostra applicazione categoria casa e permettere all'utente di scegliere.

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

Richiedere a un utente di selezionare quale app lanciare fa schifo. – AndroidDev

Problemi correlati