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 :

Application qui se lance au boot du téléphone


Sujet :

Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Par défaut Application qui se lance au boot du téléphone
    Bonjour,
    J'ai une petite application qui se lance au boot du téléphone.
    Par contre, dès que j'installe une autre application, mon appli se relance automatiquement, ce que je ne veux pas.
    Avec mes remerciements pour votre aide.
    Bernard

    Voilà mes fichiers :

    AndroidManifest.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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.survey.trike.myapplication">
     
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="Startatboot"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
     
            <activity
                android:name=".MainActivity"
                android:icon="@mipmap/ic_launcher"
                android:roundIcon="@mipmap/ic_launcher_round"
                android:label="Startatboot">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
            <receiver
                android:name="com.survey.trike.myapplication.BootReceiver"
                android:enabled="true"
                android:label="Startatboot"
                android:exported="false" >
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.PACKAGE_REPLACED" />
     
                    <data android:scheme="package" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.PACKAGE_ADDED" />
     
                    <data android:scheme="package" />
                </intent-filter>
            </receiver>
        </application>
     
    </manifest>
    BootReceiver.java :

    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
    16
    17
    18
    19
    20
    21
    package com.survey.trike.myapplication;
     
    import android.content.Context;
    import android.content.Intent;
     
    import com.survey.trike.myapplication.MainActivity;
     
    /**
     * Created by Trike on 15/03/2017.
     */
     
     
    public class BootReceiver extends android.content.BroadcastReceiver {
     
        @Override
        public void onReceive(Context context, Intent intent) {
            Intent i = new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
    MainActivity.java :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    package com.survey.trike.myapplication;
     
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.widget.TextView;
    import android.content.Intent;
    import android.content.pm.PackageManager;
    import android.content.pm.ApplicationInfo;
    import java.util.List;
    import java.util.ArrayList;
    import android.widget.Toast;
    import java.lang.*;
     
    public class MainActivity extends AppCompatActivity {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            PackageManager packageManager = getPackageManager();
            List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
            ArrayList<ApplicationInfo> applist = new ArrayList<ApplicationInfo>();
            final String TAG = "Startatboot ";
            Intent i;
            String str1="callmanagerandroid";
            String str2="broadcastreceiver";
            String str3="stay.alive";
            Integer Flag=0;
            for (ApplicationInfo info : list) {
                try {
                    if (null != packageManager.getLaunchIntentForPackage(info.packageName)) {
                        applist.add(info);
                        Flag=0;
                        if(info.packageName.indexOf(str1)!=-1) {
                            Flag=1;
                        }
                        if(info.packageName.indexOf(str2)!=-1) {
                            Flag=1;
                        }
                        if(info.packageName.indexOf(str3)!=-1) {
     
                            Flag=1;
                        }
                        if(Flag!=0)
                        {
                            Flag=0;
                            //Toast.makeText(getApplicationContext(), "TROUVE:"+info.packageName,Toast.LENGTH_LONG).show();
                            try {
                                i = getPackageManager().getLaunchIntentForPackage(info.packageName);
                                if (i == null)
                                    throw new PackageManager.NameNotFoundException();
                                i.addCategory(Intent.CATEGORY_LAUNCHER);
                                startActivity(i);
                            } catch (PackageManager.NameNotFoundException e) {
                                Toast.makeText(getApplicationContext(), "NON TROUVE:"+info.packageName,Toast.LENGTH_LONG).show();
                            }
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }

  2. #2
    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
    Parce que tu t'es abonné à trop d’événements :
    • android.intent.action.BOOT_COMPLETED
    • android.intent.action.PACKAGE_REPLACED
    • android.intent.action.PACKAGE_ADDED


    En l'état, dès qu'un paquetage applicatif (c-a-d une application) est ajouté ou modifié, ton application se lance. Gardes uniquement BOOT_COMPLETED.
    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

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Par défaut
    Super !
    Merci beaucoup, tout fonctionne normalement.
    Bernard

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. application qui se lance au démarrage
    Par paolo2002 dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 30/10/2009, 11h40
  2. Réponses: 1
    Dernier message: 09/10/2009, 16h11
  3. Trouver l'application qui a lancé word
    Par perclout dans le forum VBA Word
    Réponses: 2
    Dernier message: 20/10/2008, 11h01
  4. Application qui se lance au démarrage du device
    Par jayado dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 12/03/2008, 22h33
  5. Création d’une application qui se lance au démarrage
    Par faten7 dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/04/2006, 20h10

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