Merge "Create an API for browser app checking." into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
38e3d616bc
@@ -19,10 +19,13 @@ package com.android.settingslib.applications;
|
|||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.pm.ResolveInfo;
|
||||||
import android.hardware.usb.IUsbManager;
|
import android.hardware.usb.IUsbManager;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
@@ -44,6 +47,15 @@ public class AppUtils {
|
|||||||
*/
|
*/
|
||||||
private static InstantAppDataProvider sInstantAppDataProvider = null;
|
private static InstantAppDataProvider sInstantAppDataProvider = null;
|
||||||
|
|
||||||
|
private static final Intent sBrowserIntent;
|
||||||
|
|
||||||
|
static {
|
||||||
|
sBrowserIntent = new Intent()
|
||||||
|
.setAction(Intent.ACTION_VIEW)
|
||||||
|
.addCategory(Intent.CATEGORY_BROWSABLE)
|
||||||
|
.setData(Uri.parse("http:"));
|
||||||
|
}
|
||||||
|
|
||||||
public static CharSequence getLaunchByDefaultSummary(ApplicationsState.AppEntry appEntry,
|
public static CharSequence getLaunchByDefaultSummary(ApplicationsState.AppEntry appEntry,
|
||||||
IUsbManager usbManager, PackageManager pm, Context context) {
|
IUsbManager usbManager, PackageManager pm, Context context) {
|
||||||
String packageName = appEntry.info.packageName;
|
String packageName = appEntry.info.packageName;
|
||||||
@@ -153,4 +165,22 @@ public class AppUtils {
|
|||||||
return com.android.settingslib.utils.applications.AppUtils.getAppContentDescription(context,
|
return com.android.settingslib.utils.applications.AppUtils.getAppContentDescription(context,
|
||||||
packageName, userId);
|
packageName, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a boolean indicating whether a given package is a browser app.
|
||||||
|
*
|
||||||
|
* An app is a "browser" if it has an activity resolution that wound up
|
||||||
|
* marked with the 'handleAllWebDataURI' flag.
|
||||||
|
*/
|
||||||
|
public static boolean isBrowserApp(Context context, String packageName, int userId) {
|
||||||
|
sBrowserIntent.setPackage(packageName);
|
||||||
|
final List<ResolveInfo> list = context.getPackageManager().queryIntentActivitiesAsUser(
|
||||||
|
sBrowserIntent, PackageManager.MATCH_ALL, userId);
|
||||||
|
for (ResolveInfo info : list) {
|
||||||
|
if (info.activityInfo != null && info.handleAllWebDataURI) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user