Avis d'écran de verrouillage Android Facebook

Sur la dernière version de l'application Android, Facebook a montré une fonction de notification d'écran verrouillé, comme sur cette capture d'écran:

capture d'écran

  • Quel système mobile est destiné aux programmeurs?
  • Écrivez une fois déployé sur Windows Mobile 6, Windows Phone 7, Android et iPhone?
  • Comment puis-je suivre les emplacements intérieurs?
  • Quelle plate-forme mobile dois-je commencer à apprendre?
  • Puis-je écrire des applications natives iPhone, Android, Windows, Blackberry utilisant Python?
  • Support Iframe sur mobile
  • Est-ce que quelqu'un a essayé de mettre en œuvre cela?

    Je sais qu'il est simple de montrer l'activité sur l'écran de verrouillage, mais malheureusement, cela ne fonctionne pas avec un arrière-plan translucide. Fondamentalement, cela fonctionne mais, en dessous de notre activité, nous voyons l'écran du lanceur, pas l'écran de verrouillage (comme l'écran de verrouillage dans ce cas serait également transparent).

    Ce que j'ai essayé en ce moment est:

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 

    Dans mon activité.

    J'ai également essayé cet exemple: https://gist.github.com/daichan4649/5352944

    Et comme je l'ai décrit – tout fonctionne mais pas de transparence.

    De mon observation, Facebook utilise le thème:

     @android:style/Theme.Translucent.NoTitleBar 

    Et n'a pas la permission:

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

    Aussi, j'ai remarqué que la notification d'écran de verrouillage aquizers touche, de sorte que nous ne pouvons pas afficher les notifications de la barre d'état par geste.

    Toute idée de la création de ce type de notification avant l'édition de l'Android L.

  • Écrivez une fois déployé sur Windows Mobile 6, Windows Phone 7, Android et iPhone?
  • Support Iframe sur mobile
  • Comment puis-je suivre les emplacements intérieurs?
  • Quelle plate-forme mobile dois-je commencer à apprendre?
  • Puis-je écrire des applications natives iPhone, Android, Windows, Blackberry utilisant Python?
  • Quel système mobile est destiné aux programmeurs?
  • 2 Solutions collect form web for “Avis d'écran de verrouillage Android Facebook”

    En fait, ferdy182 était / est sur quelque chose.

    Voici ce que j'ai utilisé l' android.permission.SYSTEM_ALERT_WINDOW :

    Entrez la description de l'image ici

    Donc, je ne pouvais pas le faire avec une Activity . Cela ne marcherait pas. J'ai dû mettre en place un Service qui a ajouté une View utilisant WindowManager .

    Un flux de travail possible serait: une diffusion est reçue par BroadcastReceiver => il démarre un Service => le Service ajoute la vue requise.

    Maintenant, le code (les commentaires expliquent quelques points):

     public class MyService extends Service { View mView; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); // instance of WindowManager WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE); LayoutInflater mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); // inflate required layout file mView = mInflater.inflate(R.layout.abc, null); // attach OnClickListener mView.findViewById(R.id.some_id).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // you can fire an Intent accordingly - to deal with the click event // stop the service - this also removes `mView` from the window // because onDestroy() is called - that's where we remove `mView` stopSelf(); } }); // the LayoutParams for `mView` // main attraction here is `TYPE_SYSTEM_ERROR` // as you noted above, `TYPE_SYSTEM_ALERT` does not work on the lockscreen // `TYPE_SYSTEM_OVERLAY` works very well but is focusable - no click events // `TYPE_SYSTEM_ERROR` supports all these requirements WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0, WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, PixelFormat.RGBA_8888); // finally, add the view to window mWindowManager.addView(mView, mLayoutParams); } @Override public void onDestroy() { super.onDestroy(); // remove `mView` from the window removeViewFromWindow(); } // Removes `mView` from the window public void removeNow() { if (mView != null) { WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); wm.removeView(mView); } } } 

    Et enfin, ajouter la permission au manifeste de votre application:

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

    Je pense que cela utilise probablement le même tour que le Chat qui dirige les bulles pour Messenger.

    Fondamentalement, vous utilisez cette autorisation "android.permission.SYSTEM_ALERT_WINDOW" pour afficher vos vues au dessus d'autres applications.

    Je ne me suis pas essayé, mais je suis sûr d'avoir utilisé cela.

    À partir des docs "Permet à une application d'ouvrir Windows en utilisant le type TYPE_SYSTEM_ALERT, affiché au-dessus de toutes les autres applications." http://developer.android.com/reference/android/Manifest.permission.html#SYSTEM_ALERT_WINDOW

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.