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 :

Activer le mode avion, application système


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut Activer le mode avion, application système
    Bonjour,

    je voudrais dans mon application pouvoir passer le téléphone en mode avion et vise versa.

    j'ai trouvé a partir de la version 17 ce petit bout de code:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    Settings.Global.putInt(context.getContentResolver(),Settings.Global.AIRPLANE_MODE_ON, 0);

    mais lorsque je met la permission dans le manifest:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

    j'ai un message d'erreur: Permission is only granted to system apps

    Alors j'ai plusieurs question:

    Comment créer une system apps ?

    est-ce "dangereux" pour le système ?

    pourrais-je déployer mon app sur le market et les utilisateurs seront t' ils avertit qu'il s'agit d'une application système et qu'il y a des risques ?

    Merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut mode avion api 17
    Bonjour,

    alors après quelques recherches, je me suis rendu compte que les questions que j'ai posées sont ... comment dire ... débile

    j'ai trouvé ici.

    qu'il est possible d’accéder au mode avion avec la réflexion ou réflexivité.

    j'ai trouvé ceci, mais je ne comprend pas comment l'utilisé pour ce que je souhaite faire.

    Merci.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut
    bonjour,

    alors je progresse... enfin je crois.

    j'ai trouvé ce tuto.

    et du coup j'ai fais ça:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    try {
     
    			Class[] type = new Class[3];
    			type[0]= ContentResolver.class;
    			type[1]= String.class;
    			type[2]=int.class;
     
    			Object[]test = new Object[3];
    			test[0]= context.getContentResolver();
    			test[1]= Settings.Global.AIRPLANE_MODE_ON;
    			test[2]= 0;
     
    			Method m = Settings.Global.class.getMethod("putInt", type);
    			m.invoke(context, test);
     
    		} catch (NoSuchMethodException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}

    mais je me retrouve toujours avec l'erreur:
    W/System.err(1333): Caused by: java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS

    pour tester j'ai mis dans le manifest:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
        <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    Mais j'ai toujours la même erreur.

    du coup, je pense que j'ai fais ce qu'il fallait pour l'introspection mais je ne sais pas quoi faire pour le problème de permission.

    je sais plus trop quoi faire.

    Merci.

  4. #4
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Comme tu as du le constater, la réponse est là :
    As of 4.2.2 you cannot toggle Airplane mode as it has been Read-only.

    You have two options.

    • Make your application a System application. i.e. Root a phone, push your APK to /system/app and install from there. This will enable you to toggle airplane mode.
    • Use Reflection to get hold of the Android system function call that toggles Airplane mode.
    Donc, inutile de batailler, tu dois faire de ton application une application système pour avoir le droit de manipuler le mode avion (solution 1). La solution 2 évoque la réflexion car l'hypothèse est que la classe Settings.Global possède peut-être une méthode privée qui bascule le mode, donc normalement inaccessible au développeur, or la visibilité/portée des méthodes est contournable par la réflexion.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Réponses: 12
    Dernier message: 14/01/2011, 10h10
  2. Activation des macros sur application avec Runtime
    Par nicolas2603 dans le forum Runtime
    Réponses: 5
    Dernier message: 29/02/2008, 16h41
  3. Comment activer le mode Creation
    Par Soulkeum dans le forum Sécurité
    Réponses: 3
    Dernier message: 06/11/2007, 14h03
  4. activer le mode "création de formulaire" dans une procédure
    Par thierryyyyyyy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2007, 15h53
  5. Activer le mode graphique d'une carte graphique (MC6845)
    Par onur dans le forum Autres architectures
    Réponses: 5
    Dernier message: 10/04/2006, 20h22

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