am 361199b5
: Add PackageManager API to get information about a provider component.
Merge commit '361199b5e742c6635d4d7a03de6cf37b31cf442c' into gingerbread-plus-aosp * commit '361199b5e742c6635d4d7a03de6cf37b31cf442c': Add PackageManager API to get information about a provider component.
This commit is contained in:
@ -48132,7 +48132,7 @@
|
|||||||
deprecated="not deprecated"
|
deprecated="not deprecated"
|
||||||
visibility="public"
|
visibility="public"
|
||||||
>
|
>
|
||||||
<parameter name="className" type="android.content.ComponentName">
|
<parameter name="component" type="android.content.ComponentName">
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="flags" type="int">
|
<parameter name="flags" type="int">
|
||||||
</parameter>
|
</parameter>
|
||||||
@ -48528,6 +48528,23 @@
|
|||||||
<parameter name="flags" type="int">
|
<parameter name="flags" type="int">
|
||||||
</parameter>
|
</parameter>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="getProviderInfo"
|
||||||
|
return="android.content.pm.ProviderInfo"
|
||||||
|
abstract="true"
|
||||||
|
native="false"
|
||||||
|
synchronized="false"
|
||||||
|
static="false"
|
||||||
|
final="false"
|
||||||
|
deprecated="not deprecated"
|
||||||
|
visibility="public"
|
||||||
|
>
|
||||||
|
<parameter name="component" type="android.content.ComponentName">
|
||||||
|
</parameter>
|
||||||
|
<parameter name="flags" type="int">
|
||||||
|
</parameter>
|
||||||
|
<exception name="PackageManager.NameNotFoundException" type="android.content.pm.PackageManager.NameNotFoundException">
|
||||||
|
</exception>
|
||||||
|
</method>
|
||||||
<method name="getReceiverInfo"
|
<method name="getReceiverInfo"
|
||||||
return="android.content.pm.ActivityInfo"
|
return="android.content.pm.ActivityInfo"
|
||||||
abstract="true"
|
abstract="true"
|
||||||
@ -48538,7 +48555,7 @@
|
|||||||
deprecated="not deprecated"
|
deprecated="not deprecated"
|
||||||
visibility="public"
|
visibility="public"
|
||||||
>
|
>
|
||||||
<parameter name="className" type="android.content.ComponentName">
|
<parameter name="component" type="android.content.ComponentName">
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="flags" type="int">
|
<parameter name="flags" type="int">
|
||||||
</parameter>
|
</parameter>
|
||||||
@ -48600,7 +48617,7 @@
|
|||||||
deprecated="not deprecated"
|
deprecated="not deprecated"
|
||||||
visibility="public"
|
visibility="public"
|
||||||
>
|
>
|
||||||
<parameter name="className" type="android.content.ComponentName">
|
<parameter name="component" type="android.content.ComponentName">
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="flags" type="int">
|
<parameter name="flags" type="int">
|
||||||
</parameter>
|
</parameter>
|
||||||
@ -158361,6 +158378,23 @@
|
|||||||
<parameter name="flags" type="int">
|
<parameter name="flags" type="int">
|
||||||
</parameter>
|
</parameter>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="getProviderInfo"
|
||||||
|
return="android.content.pm.ProviderInfo"
|
||||||
|
abstract="false"
|
||||||
|
native="false"
|
||||||
|
synchronized="false"
|
||||||
|
static="false"
|
||||||
|
final="false"
|
||||||
|
deprecated="not deprecated"
|
||||||
|
visibility="public"
|
||||||
|
>
|
||||||
|
<parameter name="className" type="android.content.ComponentName">
|
||||||
|
</parameter>
|
||||||
|
<parameter name="flags" type="int">
|
||||||
|
</parameter>
|
||||||
|
<exception name="PackageManager.NameNotFoundException" type="android.content.pm.PackageManager.NameNotFoundException">
|
||||||
|
</exception>
|
||||||
|
</method>
|
||||||
<method name="getReceiverInfo"
|
<method name="getReceiverInfo"
|
||||||
return="android.content.pm.ActivityInfo"
|
return="android.content.pm.ActivityInfo"
|
||||||
abstract="false"
|
abstract="false"
|
||||||
|
@ -1841,6 +1841,21 @@ class ContextImpl extends Context {
|
|||||||
throw new NameNotFoundException(className.toString());
|
throw new NameNotFoundException(className.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProviderInfo getProviderInfo(ComponentName className, int flags)
|
||||||
|
throws NameNotFoundException {
|
||||||
|
try {
|
||||||
|
ProviderInfo pi = mPM.getProviderInfo(className, flags);
|
||||||
|
if (pi != null) {
|
||||||
|
return pi;
|
||||||
|
}
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
throw new RuntimeException("Package manager has died", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new NameNotFoundException(className.toString());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String[] getSystemSharedLibraryNames() {
|
public String[] getSystemSharedLibraryNames() {
|
||||||
try {
|
try {
|
||||||
|
@ -68,6 +68,8 @@ interface IPackageManager {
|
|||||||
|
|
||||||
ServiceInfo getServiceInfo(in ComponentName className, int flags);
|
ServiceInfo getServiceInfo(in ComponentName className, int flags);
|
||||||
|
|
||||||
|
ProviderInfo getProviderInfo(in ComponentName className, int flags);
|
||||||
|
|
||||||
int checkPermission(String permName, String pkgName);
|
int checkPermission(String permName, String pkgName);
|
||||||
|
|
||||||
int checkUidPermission(String permName, int uid);
|
int checkUidPermission(String permName, int uid);
|
||||||
|
@ -996,9 +996,9 @@ public abstract class PackageManager {
|
|||||||
* <p>Throws {@link NameNotFoundException} if an activity with the given
|
* <p>Throws {@link NameNotFoundException} if an activity with the given
|
||||||
* class name can not be found on the system.
|
* class name can not be found on the system.
|
||||||
*
|
*
|
||||||
* @param className The full name (i.e.
|
* @param component The full component name (i.e.
|
||||||
* com.google.apps.contacts.ContactsList) of an Activity
|
* com.google.apps.contacts/com.google.apps.contacts.ContactsList) of an Activity
|
||||||
* class.
|
* class.
|
||||||
* @param flags Additional option flags. Use any combination of
|
* @param flags Additional option flags. Use any combination of
|
||||||
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
||||||
* to modify the data (in ApplicationInfo) returned.
|
* to modify the data (in ApplicationInfo) returned.
|
||||||
@ -1009,7 +1009,7 @@ public abstract class PackageManager {
|
|||||||
* @see #GET_META_DATA
|
* @see #GET_META_DATA
|
||||||
* @see #GET_SHARED_LIBRARY_FILES
|
* @see #GET_SHARED_LIBRARY_FILES
|
||||||
*/
|
*/
|
||||||
public abstract ActivityInfo getActivityInfo(ComponentName className,
|
public abstract ActivityInfo getActivityInfo(ComponentName component,
|
||||||
int flags) throws NameNotFoundException;
|
int flags) throws NameNotFoundException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1019,9 +1019,9 @@ public abstract class PackageManager {
|
|||||||
* <p>Throws {@link NameNotFoundException} if a receiver with the given
|
* <p>Throws {@link NameNotFoundException} if a receiver with the given
|
||||||
* class name can not be found on the system.
|
* class name can not be found on the system.
|
||||||
*
|
*
|
||||||
* @param className The full name (i.e.
|
* @param component The full component name (i.e.
|
||||||
* com.google.apps.contacts.CalendarAlarm) of a Receiver
|
* com.google.apps.calendar/com.google.apps.calendar.CalendarAlarm) of a Receiver
|
||||||
* class.
|
* class.
|
||||||
* @param flags Additional option flags. Use any combination of
|
* @param flags Additional option flags. Use any combination of
|
||||||
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
||||||
* to modify the data returned.
|
* to modify the data returned.
|
||||||
@ -1032,7 +1032,7 @@ public abstract class PackageManager {
|
|||||||
* @see #GET_META_DATA
|
* @see #GET_META_DATA
|
||||||
* @see #GET_SHARED_LIBRARY_FILES
|
* @see #GET_SHARED_LIBRARY_FILES
|
||||||
*/
|
*/
|
||||||
public abstract ActivityInfo getReceiverInfo(ComponentName className,
|
public abstract ActivityInfo getReceiverInfo(ComponentName component,
|
||||||
int flags) throws NameNotFoundException;
|
int flags) throws NameNotFoundException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1042,9 +1042,9 @@ public abstract class PackageManager {
|
|||||||
* <p>Throws {@link NameNotFoundException} if a service with the given
|
* <p>Throws {@link NameNotFoundException} if a service with the given
|
||||||
* class name can not be found on the system.
|
* class name can not be found on the system.
|
||||||
*
|
*
|
||||||
* @param className The full name (i.e.
|
* @param component The full component name (i.e.
|
||||||
* com.google.apps.media.BackgroundPlayback) of a Service
|
* com.google.apps.media/com.google.apps.media.BackgroundPlayback) of a Service
|
||||||
* class.
|
* class.
|
||||||
* @param flags Additional option flags. Use any combination of
|
* @param flags Additional option flags. Use any combination of
|
||||||
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
||||||
* to modify the data returned.
|
* to modify the data returned.
|
||||||
@ -1054,7 +1054,29 @@ public abstract class PackageManager {
|
|||||||
* @see #GET_META_DATA
|
* @see #GET_META_DATA
|
||||||
* @see #GET_SHARED_LIBRARY_FILES
|
* @see #GET_SHARED_LIBRARY_FILES
|
||||||
*/
|
*/
|
||||||
public abstract ServiceInfo getServiceInfo(ComponentName className,
|
public abstract ServiceInfo getServiceInfo(ComponentName component,
|
||||||
|
int flags) throws NameNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve all of the information we know about a particular content
|
||||||
|
* provider class.
|
||||||
|
*
|
||||||
|
* <p>Throws {@link NameNotFoundException} if a provider with the given
|
||||||
|
* class name can not be found on the system.
|
||||||
|
*
|
||||||
|
* @param component The full component name (i.e.
|
||||||
|
* com.google.providers.media/com.google.providers.media.MediaProvider) of a
|
||||||
|
* ContentProvider class.
|
||||||
|
* @param flags Additional option flags. Use any combination of
|
||||||
|
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
||||||
|
* to modify the data returned.
|
||||||
|
*
|
||||||
|
* @return ProviderInfo containing information about the service.
|
||||||
|
*
|
||||||
|
* @see #GET_META_DATA
|
||||||
|
* @see #GET_SHARED_LIBRARY_FILES
|
||||||
|
*/
|
||||||
|
public abstract ProviderInfo getProviderInfo(ComponentName component,
|
||||||
int flags) throws NameNotFoundException;
|
int flags) throws NameNotFoundException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1615,6 +1615,18 @@ class PackageManagerService extends IPackageManager.Stub {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ProviderInfo getProviderInfo(ComponentName component, int flags) {
|
||||||
|
synchronized (mPackages) {
|
||||||
|
PackageParser.Provider p = mProvidersByComponent.get(component);
|
||||||
|
if (Config.LOGV) Log.v(
|
||||||
|
TAG, "getProviderInfo " + component + ": " + p);
|
||||||
|
if (p != null && mSettings.isEnabledLP(p.info, flags)) {
|
||||||
|
return PackageParser.generateProviderInfo(p, flags);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public String[] getSystemSharedLibraryNames() {
|
public String[] getSystemSharedLibraryNames() {
|
||||||
Set<String> libSet;
|
Set<String> libSet;
|
||||||
synchronized (mPackages) {
|
synchronized (mPackages) {
|
||||||
|
@ -126,6 +126,12 @@ public class MockPackageManager extends PackageManager {
|
|||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProviderInfo getProviderInfo(ComponentName className, int flags)
|
||||||
|
throws NameNotFoundException {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PackageInfo> getInstalledPackages(int flags) {
|
public List<PackageInfo> getInstalledPackages(int flags) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
|
Reference in New Issue
Block a user