Bonsoir,

je cherche depuis quelques temps une façon de parcourir les packages installés sur un appareil.

Pour cela j'essaye d'utiliser packageManager.getInstalledPackage(0), or après investigation, si j'essaye de le stocker dans une liste PackageInfo j'options l'erreur suivante :

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
08-23 23:03:24.250: E/AndroidRuntime(28431): FATAL EXCEPTION: main
08-23 23:03:24.250: E/AndroidRuntime(28431): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.my.ping.droid/com.example.my.ping.droid.YoutubeList}: java.lang.NullPointerException
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2079)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.app.ActivityThread.startActivityNow(ActivityThread.java:1910)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:682)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.widget.TabHost.setCurrentTab(TabHost.java:346)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:150)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:540)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.view.View.performClick(View.java:3511)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.view.View$PerformClick.run(View.java:14105)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.os.Handler.handleCallback(Handler.java:605)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.os.Handler.dispatchMessage(Handler.java:92)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.os.Looper.loop(Looper.java:137)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.app.ActivityThread.main(ActivityThread.java:4575)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at java.lang.reflect.Method.invokeNative(Native Method)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at java.lang.reflect.Method.invoke(Method.java:511)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at dalvik.system.NativeStart.main(Native Method)
08-23 23:03:24.250: E/AndroidRuntime(28431): Caused by: java.lang.NullPointerException
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at com.example.my.ping.droid.YoutubeList.onCreate(YoutubeList.java:21)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.app.Activity.performCreate(Activity.java:4465)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2033)
08-23 23:03:24.250: E/AndroidRuntime(28431): 	... 18 more
Ci dessous l'activité ou j'effectue cette action :
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
package com.example.my.ping.droid;
 
import java.util.List;
 
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Toast;
 
public class YoutubeList extends Activity {
	 private PackageManager packageManager;
	 private PackageInfo packs;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
		setContentView(R.layout.youtubelistlayout);
 
		 packs = (PackageInfo) packageManager.getInstalledPackages(0);
 
			//for(int i=0;i< packs.size();i++)
			//{
				//PackageInfo p = packs.get(i);
 
				//if (p.packageName=="com.google.android.youtube") {
					//Toast.makeText(getApplicationContext(), "Youtube Spotted ", Toast.LENGTH_SHORT).show();
				//}
			//}
 
		String playlist_id;
		playlist_id ="PLF8C3E0E9568955FF";
	    Uri uri = Uri.parse("http://www.youtube.com/playlist?list=" + playlist_id);
	    Intent i = new Intent(Intent.ACTION_VIEW);
	    i.setData(uri);
	    startActivity(i);
 
    }  
}
En vous remerciant d'avance de votre aide