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