2012-04-09 8 views
5

Vamos a dar dispositivos a los clientes y deben poder llamarnos con un botón. En mi pantalla completa Activity tengo un botón que llama al numero de teléfono servicio de asistencia, por lo que onClick() realiza las siguientes acciones:TYPE_KEYGUARD mantener el modo de pantalla completa después de realizar una llamada

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

Cuando el comunicador se cierra, de repente la barra de título permanece visible, estoy adivinando que tiene algo que ver con anulando el botón 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(); 
    } 
} 

¿alguien tiene una solución para este problema?

He intentado lo siguiente:

puse en el manifiesto:

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

y utilizados en OnCreate:

requestWindowFeature(Window.FEATURE_NO_TITLE); 

Y en tanto onCreate() así como en onResume():

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

Aún se muestra la barra de título.

Respuesta

-1

agregar esto en manifiesto.

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

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

donde home_view es la vista padre del archivo 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) 
      { 
      } 
    } 

no se puede capturar la prueba de casa, lo único es que puede hacer es dar a su categoría principal de la aplicación y dejar que el usuario elija.

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

Exigir que un usuario seleccione qué aplicación lanzar apesta. – AndroidDev

Cuestiones relacionadas