List of usage examples for android.content.pm PackageManager MATCH_DEFAULT_ONLY
int MATCH_DEFAULT_ONLY
To view the source code for android.content.pm PackageManager MATCH_DEFAULT_ONLY.
Click Source Link
From source file:com.codename1.impl.android.AndroidImplementation.java
@Override public Boolean canExecute(String url) { try {/*from www .j ava 2 s . c o m*/ Intent it = createIntentForURL(url); if (it == null) { return false; } final PackageManager mgr = getContext().getPackageManager(); List<ResolveInfo> list = mgr.queryIntentActivities(it, PackageManager.MATCH_DEFAULT_ONLY); return list.size() > 0; } catch (Exception err) { com.codename1.io.Log.e(err); return false; } }
From source file:com.fairphone.fplauncher3.Workspace.java
private void updateShortcutsAndWidgetsPerUser(ArrayList<AppInfo> apps, final UserHandleCompat user) { // Create a map of the apps to test against final HashMap<ComponentName, AppInfo> appsMap = new HashMap<ComponentName, AppInfo>(); final HashSet<String> pkgNames = new HashSet<String>(); for (AppInfo ai : apps) { appsMap.put(ai.componentName, ai); pkgNames.add(ai.componentName.getPackageName()); }/* w w w. j av a 2 s .c o m*/ final HashSet<ComponentName> iconsToRemove = new HashSet<ComponentName>(); mapOverItems(MAP_RECURSE, new ItemOperator() { @Override public boolean evaluate(ItemInfo info, View v, View parent) { if (info instanceof ShortcutInfo && v instanceof BubbleTextView) { ShortcutInfo shortcutInfo = (ShortcutInfo) info; ComponentName cn = shortcutInfo.getTargetComponent(); AppInfo appInfo = appsMap.get(cn); if (user.equals(shortcutInfo.user) && cn != null && LauncherModel.isShortcutInfoUpdateable(info) && pkgNames.contains(cn.getPackageName())) { boolean promiseStateChanged = false; boolean infoUpdated = false; if (shortcutInfo.isPromise()) { if (shortcutInfo.hasStatusFlag(ShortcutInfo.FLAG_AUTOINTALL_ICON)) { // Auto install icon PackageManager pm = getContext().getPackageManager(); ResolveInfo matched = pm .resolveActivity( new Intent(Intent.ACTION_MAIN).setComponent(cn) .addCategory(Intent.CATEGORY_LAUNCHER), PackageManager.MATCH_DEFAULT_ONLY); if (matched == null) { // Try to find the best match activity. Intent intent = pm.getLaunchIntentForPackage(cn.getPackageName()); if (intent != null) { cn = intent.getComponent(); appInfo = appsMap.get(cn); } if ((intent == null) || (appsMap == null)) { // Could not find a default activity. Remove this item. iconsToRemove.add(shortcutInfo.getTargetComponent()); // process next shortcut. return false; } shortcutInfo.promisedIntent = intent; } } // Restore the shortcut. shortcutInfo.intent = shortcutInfo.promisedIntent; shortcutInfo.promisedIntent = null; shortcutInfo.status &= ~ShortcutInfo.FLAG_RESTORED_ICON & ~ShortcutInfo.FLAG_AUTOINTALL_ICON & ~ShortcutInfo.FLAG_INSTALL_SESSION_ACTIVE; promiseStateChanged = true; infoUpdated = true; shortcutInfo.updateIcon(mIconCache); LauncherModel.updateItemInDatabase(getContext(), shortcutInfo); } if (appInfo != null) { shortcutInfo.updateIcon(mIconCache); shortcutInfo.title = appInfo.title.toString(); shortcutInfo.contentDescription = appInfo.contentDescription; infoUpdated = true; } if (infoUpdated) { BubbleTextView shortcut = (BubbleTextView) v; shortcut.applyFromShortcutInfo(shortcutInfo, mIconCache, true, promiseStateChanged); if (parent != null) { parent.invalidate(); } } } } // process all the shortcuts return false; } }); if (!iconsToRemove.isEmpty()) { removeItemsByComponentName(iconsToRemove, user); } if (user.equals(UserHandleCompat.myUserHandle())) { restorePendingWidgets(pkgNames); } }
From source file:carnero.cgeo.cgBase.java
public static boolean isIntentAvailable(Context context, Intent intent) { final PackageManager packageManager = context.getPackageManager(); final List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); return (list.size() > 0); }
From source file:com.codename1.impl.android.AndroidImplementation.java
@Override public void capturePhoto(ActionListener response) { if (getActivity() == null) { throw new RuntimeException("Cannot capture photo in background mode"); }/*from ww w . j a v a 2s. com*/ if (!checkForPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, "This is required to take a picture")) { return; } if (getRequestedPermissions().contains(Manifest.permission.CAMERA)) { // Normally we don't need to request the CAMERA permission since we use // the ACTION_IMAGE_CAPTURE intent, which handles permissions itself. // BUT: If the camera permission is included in the Manifest file, the // intent will defer to the app's permissions, and on Android 6, // the permission is denied unless we do the runtime check for permission. // See https://github.com/codenameone/CodenameOne/issues/2409#issuecomment-391696058 if (!checkForPermission(Manifest.permission.CAMERA, "This is required to take a picture")) { return; } } callback = new EventDispatcher(); callback.addListener(response); Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); File newFile = getOutputMediaFile(false); newFile.getParentFile().mkdirs(); newFile.getParentFile().setWritable(true, false); //Uri imageUri = Uri.fromFile(newFile); Uri imageUri = FileProvider.getUriForFile(getContext(), getContext().getPackageName() + ".provider", newFile); intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageUri); String lastImageID = getLastImageId(); Storage.getInstance().writeObject("imageUri", newFile.getAbsolutePath() + ";" + lastImageID); intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageUri); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); if (Build.VERSION.SDK_INT < 21) { List<ResolveInfo> resInfoList = getContext().getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); for (ResolveInfo resolveInfo : resInfoList) { String packageName = resolveInfo.activityInfo.packageName; getContext().grantUriPermission(packageName, imageUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION); } } getActivity().startActivityForResult(intent, CAPTURE_IMAGE); }
From source file:com.codename1.impl.android.AndroidImplementation.java
@Override public void captureVideo(ActionListener response) { if (getActivity() == null) { throw new RuntimeException("Cannot capture video in background mode"); }/*from ww w . j a va 2 s. co m*/ if (!checkForPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, "This is required to take a video")) { return; } if (getRequestedPermissions().contains(Manifest.permission.CAMERA)) { // Normally we don't need to request the CAMERA permission since we use // the ACTION_VIDEO_CAPTURE intent, which handles permissions itself. // BUT: If the camera permission is included in the Manifest file, the // intent will defer to the app's permissions, and on Android 6, // the permission is denied unless we do the runtime check for permission. // See https://github.com/codenameone/CodenameOne/issues/2409#issuecomment-391696058 if (!checkForPermission(Manifest.permission.CAMERA, "This is required to take a video")) { return; } } callback = new EventDispatcher(); callback.addListener(response); Intent intent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); File newFile = getOutputMediaFile(true); Uri videoUri = FileProvider.getUriForFile(getContext(), getContext().getPackageName() + ".provider", newFile); Storage.getInstance().writeObject("videoUri", newFile.getAbsolutePath()); intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, videoUri); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); if (Build.VERSION.SDK_INT < 21) { List<ResolveInfo> resInfoList = getContext().getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); for (ResolveInfo resolveInfo : resInfoList) { String packageName = resolveInfo.activityInfo.packageName; getContext().grantUriPermission(packageName, videoUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION); } } this.getActivity().startActivityForResult(intent, CAPTURE_VIDEO); }