IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Lancer mon application avec camera button


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 23
    Par défaut Lancer mon application avec camera button
    Bonjour,

    j'ai réussi à lancer mon application en utilisant le broadcast CAMERA_BUTTON.

    //dans le fichier manifest:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.CAMERA">
    //et dans le broadcast camera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void onReceive(Context context, Intent intent) {
    			try {
    	            Toast.makeText(context, "Camera Button Pressed", Toast.LENGTH_LONG).show();
    			} catch (Exception e) {
    			}
    		}
    jusqu'ici tous fonctionne parfaitement.

    J'ai ajouté dans mon activité de paramétrage un champs dans le quelle l'utilisateur choisi Oui s'il veule changer le fonctionnement par défaut de la bouton caméra et Non sinon.

    ainsi je devrais ajouté un test sur mon broadcast

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void onReceive(Context context, Intent intent) {
    		// HAY extend de Application et permet d'accéder à un variable globale
                    String s = ((HAY) this.getApplication()).getSomeVariable(); 
    		if (s = "Oui"){
    			try {
    	            Toast.makeText(context, "Camera Button Pressed", Toast.LENGTH_LONG).show();
    			} catch (Exception e) {
    			}
    		}
    et là j'ai eu une erreur: The method getApplication() is undefined for the type CameraButtonReceiver!!!

    j'ai aussi essayer la methode getApplicationContext(), ça marche pas aussi.

    Comment pourrais-je faire pour pouvoir accorder à mon utilisateur la liberté de changer ou non le fonctionnement de la bouton caméra.

    Merci

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Alors comme cela c'est vraiment pas évident de t'aider .....

    A part de getApplication appartient à Activity et je peux 'supposer' que CameraButtonReceiver n'est pas une Activity.

    Comment pourrais-je faire pour pouvoir accorder à mon utilisateur la liberté de changer ou non le fonctionnement de la bouton caméra.
    Déjà qu'est ce que tu as fait , explique nous un peu plus ? Les interactions entre broadcast et Activity, ....

  3. #3
    Membre averti
    Inscrit en
    Août 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 23
    Par défaut
    Enfaite, mon broadcast permet de lancer des services.

    Mais pour que mon broacast soit fonctionnel, l'utilisateur doit cocher la case caméra dans mon activité paramétrage.

    et puis lorsque l'utilisateur click long temp sur le bouton caméra, le broadcast CAMERA_BUTTON se lance et doit donc vérifier que l'utilisateur à cocher caméra sur mon activité pour lancer ensuite les services.

    j'ai essayé la méthode startActivityForResult() dans mon broadcast. mais ça marche pas aussi.

  4. #4
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Bonjour,

    D'ici la solution me paraît toute simple, après faut voir si elle marche.
    Remplace juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void onReceive(Context context, Intent intent) {
    		// HAY extend de Application et permet d'accéder à un variable globale
                    String s = ((HAY) this.getApplication()).getSomeVariable(); 
    		if (s = "Oui"){
    			try {
    	            Toast.makeText(context, "Camera Button Pressed", Toast.LENGTH_LONG).show();
    			} catch (Exception e) {
    			}
    		}
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void onReceive(Context context, Intent intent) {
    		// HAY extend de Application et permet d'accéder à un variable globale
                    String s = ((HAY) context.getApplication()).getSomeVariable(); 
    		if (s = "Oui"){
    			try {
    	            Toast.makeText(context, "Camera Button Pressed", Toast.LENGTH_LONG).show();
    			} catch (Exception e) {
    			}
    		}
    Après si ça ne marche pas, il faudra que ton Activity de préférences les enregistrent dans un SharedPreferencesEditor, et que tu y accèdes depuis ton CameraButtonReceiver.

    Bonne continuation.

  5. #5
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 1
    Par défaut utiliser un broadcast sur l'action CAMERA_BUTTON
    Bonjour,

    Je relance cette discussion car malgré son titre elle répond pas totalement à mon besoin.
    Je souhaite lancé une activity lorsque l'utilisateur prend une photo.
    Malgré le fait que j'ai parcouru ce forum et repéré les étapes importantes, je n'y parviens pas.
    J'ai peut être oublié un détail important.

    Tout d’abord, dans le manifest.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     <application 
               android:icon="@drawable/icon"
               android:label="@string/app_name">
     
            <receiver 
                  android:enabled="true" 
                  android:name=".PhotoReceiver"> 
    		<intent-filter android:priority="100"> 
    			<action android:name="android.intent.action.CAMERA_BUTTON"/>
    			<category android:name="android.intent.category.DEFAULT"/>
    	 	</intent-filter> 
    	</receiver> 	
     
      </application>
    Puis mon Broadcast Receiver affichant un toast dans un premier temps :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class PhotoReceiver extends BroadcastReceiver{ 
     
        public void onReceive(Context context, Intent intent) { 
        	abortBroadcast();
     
            Toast.makeText(context, "Photo capturée !", Toast.LENGTH_SHORT).show();	
     
     
        } 
    }
    Merci pour votre aide.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/05/2015, 19h48
  2. [PHP-JS] Comment lancer mon application
    Par Maria1505 dans le forum Langage
    Réponses: 7
    Dernier message: 18/12/2006, 23h42
  3. Lancer mon application En arriere plan
    Par tarek.seg dans le forum Delphi
    Réponses: 1
    Dernier message: 03/11/2006, 09h24
  4. lancer mon application via le sélectionneur de programmes
    Par krokmitaine dans le forum Delphi
    Réponses: 16
    Dernier message: 14/10/2006, 21h30
  5. Réponses: 2
    Dernier message: 21/05/2006, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo