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"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="className" type="android.content.ComponentName">
|
||||
<parameter name="component" type="android.content.ComponentName">
|
||||
</parameter>
|
||||
<parameter name="flags" type="int">
|
||||
</parameter>
|
||||
@ -48528,6 +48528,23 @@
|
||||
<parameter name="flags" type="int">
|
||||
</parameter>
|
||||
</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"
|
||||
return="android.content.pm.ActivityInfo"
|
||||
abstract="true"
|
||||
@ -48538,7 +48555,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="className" type="android.content.ComponentName">
|
||||
<parameter name="component" type="android.content.ComponentName">
|
||||
</parameter>
|
||||
<parameter name="flags" type="int">
|
||||
</parameter>
|
||||
@ -48600,7 +48617,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="className" type="android.content.ComponentName">
|
||||
<parameter name="component" type="android.content.ComponentName">
|
||||
</parameter>
|
||||
<parameter name="flags" type="int">
|
||||
</parameter>
|
||||
@ -158361,6 +158378,23 @@
|
||||
<parameter name="flags" type="int">
|
||||
</parameter>
|
||||
</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"
|
||||
return="android.content.pm.ActivityInfo"
|
||||
abstract="false"
|
||||
|
@ -1841,6 +1841,21 @@ class ContextImpl extends Context {
|
||||
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
|
||||
public String[] getSystemSharedLibraryNames() {
|
||||
try {
|
||||
|
@ -68,6 +68,8 @@ interface IPackageManager {
|
||||
|
||||
ServiceInfo getServiceInfo(in ComponentName className, int flags);
|
||||
|
||||
ProviderInfo getProviderInfo(in ComponentName className, int flags);
|
||||
|
||||
int checkPermission(String permName, String pkgName);
|
||||
|
||||
int checkUidPermission(String permName, int uid);
|
||||
|
@ -996,9 +996,9 @@ public abstract class PackageManager {
|
||||
* <p>Throws {@link NameNotFoundException} if an activity with the given
|
||||
* class name can not be found on the system.
|
||||
*
|
||||
* @param className The full name (i.e.
|
||||
* com.google.apps.contacts.ContactsList) of an Activity
|
||||
* class.
|
||||
* @param component The full component name (i.e.
|
||||
* com.google.apps.contacts/com.google.apps.contacts.ContactsList) of an Activity
|
||||
* class.
|
||||
* @param flags Additional option flags. Use any combination of
|
||||
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
||||
* to modify the data (in ApplicationInfo) returned.
|
||||
@ -1009,7 +1009,7 @@ public abstract class PackageManager {
|
||||
* @see #GET_META_DATA
|
||||
* @see #GET_SHARED_LIBRARY_FILES
|
||||
*/
|
||||
public abstract ActivityInfo getActivityInfo(ComponentName className,
|
||||
public abstract ActivityInfo getActivityInfo(ComponentName component,
|
||||
int flags) throws NameNotFoundException;
|
||||
|
||||
/**
|
||||
@ -1019,9 +1019,9 @@ public abstract class PackageManager {
|
||||
* <p>Throws {@link NameNotFoundException} if a receiver with the given
|
||||
* class name can not be found on the system.
|
||||
*
|
||||
* @param className The full name (i.e.
|
||||
* com.google.apps.contacts.CalendarAlarm) of a Receiver
|
||||
* class.
|
||||
* @param component The full component name (i.e.
|
||||
* com.google.apps.calendar/com.google.apps.calendar.CalendarAlarm) of a Receiver
|
||||
* class.
|
||||
* @param flags Additional option flags. Use any combination of
|
||||
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
||||
* to modify the data returned.
|
||||
@ -1032,7 +1032,7 @@ public abstract class PackageManager {
|
||||
* @see #GET_META_DATA
|
||||
* @see #GET_SHARED_LIBRARY_FILES
|
||||
*/
|
||||
public abstract ActivityInfo getReceiverInfo(ComponentName className,
|
||||
public abstract ActivityInfo getReceiverInfo(ComponentName component,
|
||||
int flags) throws NameNotFoundException;
|
||||
|
||||
/**
|
||||
@ -1042,9 +1042,9 @@ public abstract class PackageManager {
|
||||
* <p>Throws {@link NameNotFoundException} if a service with the given
|
||||
* class name can not be found on the system.
|
||||
*
|
||||
* @param className The full name (i.e.
|
||||
* com.google.apps.media.BackgroundPlayback) of a Service
|
||||
* class.
|
||||
* @param component The full component name (i.e.
|
||||
* com.google.apps.media/com.google.apps.media.BackgroundPlayback) of a Service
|
||||
* class.
|
||||
* @param flags Additional option flags. Use any combination of
|
||||
* {@link #GET_META_DATA}, {@link #GET_SHARED_LIBRARY_FILES},
|
||||
* to modify the data returned.
|
||||
@ -1054,7 +1054,29 @@ public abstract class PackageManager {
|
||||
* @see #GET_META_DATA
|
||||
* @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;
|
||||
|
||||
/**
|
||||
|
@ -1615,6 +1615,18 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
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() {
|
||||
Set<String> libSet;
|
||||
synchronized (mPackages) {
|
||||
|
@ -126,6 +126,12 @@ public class MockPackageManager extends PackageManager {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProviderInfo getProviderInfo(ComponentName className, int flags)
|
||||
throws NameNotFoundException {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PackageInfo> getInstalledPackages(int flags) {
|
||||
throw new UnsupportedOperationException();
|
||||
|
Reference in New Issue
Block a user