我想获得系统内所有安装的包,和相关的信息,用的是:PackageManager 的getInstalledPackages(。。)方法。但是代码可以获得包名,在获得具体的activityinfo的时候有问题,请大家帮我改下。我的代码是:(并没有设置 manifest 里边的 uses-permission)
public class StartOtherActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); getActivityName(this, " ");
} public static void getActivityName(Context context, String pkgname) {
String activityname = "";
PackageManager pm = context.getPackageManager();
// 得到所有应用的包信息
List<PackageInfo> list = pm
.getInstalledPackages(PackageManager.GET_ACTIVITIES); Log.v("list size", " " + list.size());
int length = list.size();
Log.d("pkg length", length + ""); for (int i = 0; i < length; i++) {
String name = list.get(i).packageName;
Log.d("pkg " + i, name);

ActivityInfo activityinfo = list.get(i).activities[0];// 得到入口activity
Log.v("activity name" , activityinfo.packageName);
activityname = activityinfo.name;
Log.d("activity " + i, activityname);
}
}}

解决方案 »

  1.   

    http://blog.csdn.net/android_tutor/article/details/5824581
      

  2.   


    我要获得的是所有安装的程序,不是检查所有正在运行的activity或者service。
    能不能看一下我的代码?
      

  3.   

    public ActivityInfo[] activities
    Since: API Level 1Array of all <activity> tags included under <application>, or null if there were none. This is only filled in if the flag GET_ACTIVITIES was set.
    --有些package的activity是null,所以你读取list.get(i).activities[0]出错。