/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.content.pm;
import java.io.File;
import android.os.Parcelable;
/**
* Overall information about the contents of a package. This corresponds to all
* of the information collected from AndroidManifest.xml.
*/
public class PackageInfo implements Parcelable {
/**
* The name of this package. From the <manifest> tag's "name"
* attribute.
*/
public String packageName;
/**
* The version number of this package, as specified by the <manifest>
* tag's {@link com.intel.jsdroid.sample.R.styleable#AndroidManifest_versionCode versionCode}
* attribute.
*/
public int versionCode;
/**
* The version name of this package, as specified by the <manifest>
* tag's {@link com.intel.jsdroid.sample.R.styleable#AndroidManifest_versionName versionName}
* attribute.
*/
public String versionName;
/**
* The shared user ID name of this package, as specified by the
* <manifest> tag's
* {@link com.intel.jsdroid.sample.R.styleable#AndroidManifest_sharedUserId sharedUserId}
* attribute.
*/
public String sharedUserId;
/**
* The shared user ID label of this package, as specified by the
* <manifest> tag's
* {@link com.intel.jsdroid.sample.R.styleable#AndroidManifest_sharedUserLabel
* sharedUserLabel} attribute.
*/
public int sharedUserLabel;
/**
* Information collected from the <application> tag, or null if there
* was none.
*/
public ApplicationInfo applicationInfo;
/**
* The time at which the app was first installed. Units are as per
* {@link System#currentTimeMillis()}.
*/
public long firstInstallTime;
/**
* The time at which the app was last updated. Units are as per
* {@link System#currentTimeMillis()}.
*/
public long lastUpdateTime;
/**
* All kernel group-IDs that have been assigned to this package. This is
* only filled in if the flag {@link PackageManager#GET_GIDS} was set.
*/
public int[] gids;
/**
* Array of all {@link com.intel.jsdroid.sample.R.styleable#AndroidManifestActivity
* <activity>} tags included under <application>, or null if
* there were none. This is only filled in if the flag
* {@link PackageManager#GET_ACTIVITIES} was set.
*/
public ActivityInfo[] activities;
/**
* Array of all {@link com.intel.jsdroid.sample.R.styleable#AndroidManifestReceiver
* <receiver>} tags included under <application>, or null if
* there were none. This is only filled in if the flag
* {@link PackageManager#GET_RECEIVERS} was set.
*/
public ActivityInfo[] receivers;
/**
* Array of all {@link android.R.styleable#AndroidManifestService
* <service>} tags included under <application>, or null if
* there were none. This is only filled in if the flag
* {@link PackageManager#GET_SERVICES} was set.
*/
// public ServiceInfo[] services;
/**
* Array of all {@link android.R.styleable#AndroidManifestProvider
* <provider>} tags included under <application>, or null if
* there were none. This is only filled in if the flag
* {@link PackageManager#GET_PROVIDERS} was set.
*/
// public ProviderInfo[] providers;
/**
* Array of all {@link android.R.styleable#AndroidManifestInstrumentation
* <instrumentation>} tags included under <manifest>, or null if
* there were none. This is only filled in if the flag
* {@link PackageManager#GET_INSTRUMENTATION} was set.
*/
// public InstrumentationInfo[] instrumentation;
/**
* Array of all {@link android.R.styleable#AndroidManifestPermission
* <permission>} tags included under <manifest>, or null if
* there were none. This is only filled in if the flag
* {@link PackageManager#GET_PERMISSIONS} was set.
*/
// public PermissionInfo[] permissions;
/**
* Array of all {@link com.intel.jsdroid.sample.R.styleable#AndroidManifestUsesPermission
* <uses-permission>} tags included under <manifest>, or null if
* there were none. This is only filled in if the flag
* {@link PackageManager#GET_PERMISSIONS} was set. This list includes all
* permissions requested, even those that were not granted or known by the
* system at install time.
*/
public String[] requestedPermissions;
/**
* Array of all signatures read from the package file. This is only filled
* in if the flag {@link PackageManager#GET_SIGNATURES} was set.
*/
// public Signature[] signatures;
/**
* Application specified preferred configuration
* {@link android.R.styleable#AndroidManifestUsesConfiguration
* <uses-configuration>} tags included under <manifest>, or null
* if there were none. This is only filled in if the flag
* {@link PackageManager#GET_CONFIGURATIONS} was set.
*/
// public ConfigurationInfo[] configPreferences;
/**
* The features that this application has said it requires.
*/
// public FeatureInfo[] reqFeatures;
/**
* Constant corresponding to <code>auto</code> in the
* {@link com.intel.jsdroid.sample.R.attr#installLocation} attribute.
*
* @hide
*/
public static final int INSTALL_LOCATION_UNSPECIFIED = -1;
/**
* Constant corresponding to <code>auto</code> in the
* {@link com.intel.jsdroid.sample.R.attr#installLocation} attribute.
*
* @hide
*/
public static final int INSTALL_LOCATION_AUTO = 0;
/**
* Constant corresponding to <code>internalOnly</code> in the
* {@link com.intel.jsdroid.sample.R.attr#installLocation} attribute.
*
* @hide
*/
public static final int INSTALL_LOCATION_INTERNAL_ONLY = 1;
/**
* Constant corresponding to <code>preferExternal</code> in the
* {@link com.intel.jsdroid.sample.R.attr#installLocation} attribute.
*
* @hide
*/
public static final int INSTALL_LOCATION_PREFER_EXTERNAL = 2;
/**
* The install location requested by the activity. From the
* {@link com.intel.jsdroid.sample.R.attr#installLocation} attribute, one of
* {@link #INSTALL_LOCATION_AUTO}, {@link #INSTALL_LOCATION_INTERNAL_ONLY},
* {@link #INSTALL_LOCATION_PREFER_EXTERNAL}
*
* @hide
*/
public int installLocation = INSTALL_LOCATION_INTERNAL_ONLY;
public PackageInfo() {
}
public File getDataDirFile(){
if(packageName!=null){
return new File(packageName);
}else{
return null;
}
}
public String toString() {
return "PackageInfo{"
//+ Integer.toHexString(System.identityHashCode(this)) + " "
+ packageName + "}";
}
public int describeContents() {
return 0;
}
}