Example usage for android.content.pm PackageManager queryIntentActivities

List of usage examples for android.content.pm PackageManager queryIntentActivities

Introduction

In this page you can find the example usage for android.content.pm PackageManager queryIntentActivities.

Prototype

public abstract List<ResolveInfo> queryIntentActivities(Intent intent, @ResolveInfoFlags int flags);

Source Link

Document

Retrieve all activities that can be performed for the given intent.

Usage

From source file:android.security.cts.BrowserTest.java

/**
 * Create intents for all activities that can display the given URI.
 *//*ww w .  j  a  v  a 2 s  .c o m*/
private List<Intent> createAllIntents(Uri uri) {

    Intent implicit = new Intent(Intent.ACTION_VIEW);
    implicit.setData(uri);

    /* convert our implicit Intent into multiple explicit Intents */
    List<Intent> retval = new ArrayList<Intent>();
    PackageManager pm = mContext.getPackageManager();
    List<ResolveInfo> list = pm.queryIntentActivities(implicit, PackageManager.GET_META_DATA);
    for (ResolveInfo i : list) {
        Intent explicit = new Intent(Intent.ACTION_VIEW);
        explicit.setClassName(i.activityInfo.packageName, i.activityInfo.name);
        explicit.setData(uri);
        explicit.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        retval.add(explicit);
    }

    return retval;
}

From source file:com.ducnd.recordvideo_sample.CaptureDemoFragment.java

private boolean canHandleIntent(Intent intent) {
    final PackageManager mgr = getActivity().getPackageManager();
    List<ResolveInfo> list = mgr.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
}

From source file:de.hska.iam.presentationapp.activities.ChooseMediaActivity.java

public void openData(String open) {

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    PackageManager packageManager = getPackageManager();
    List<ResolveInfo> app = packageManager.queryIntentActivities(intent, 0);

    boolean isAppsAvailable = app.size() > 0;

    if (isAppsAvailable) {

        if (UriUtils.isPdf(uri)) {

            intent.setDataAndType(uri, "application/pdf");
            startActivity(Intent.createChooser(intent, "Starten mit "));

        } else if (UriUtils.isImage(uri)) {

            intent.setDataAndType(uri, "image/*");
            startActivity(Intent.createChooser(intent, "Starten mit "));

        } else if (UriUtils.isVideo(uri)) {

            intent.setDataAndType(uri, "video/*");
            startActivity(Intent.createChooser(intent, "Starten mit "));

        }//ww w  . j  a va2 s  .  c o m
    }
}

From source file:ee.ria.DigiDoc.fragment.ContainerDataFilesFragment.java

private Intent createChooserOrShareIntentForDataFile(DataFileFacade dataFileFacade) {
    String fileName = dataFileFacade.getFileName();
    String mediaType = FileUtils.resolveMimeType(fileName);
    if (mediaType == null) {
        mediaType = "application/octet-stream";
    }/*from  ww  w .  j  ava 2  s . co m*/
    Uri contentUri = createShareUri(fileName);
    Intent sendIntent = createSendIntent(contentUri, mediaType);
    PackageManager packageManager = getActivity().getPackageManager();
    List<ResolveInfo> allAvailableResolvers = packageManager.queryIntentActivities(sendIntent, 0);
    List<Intent> targetedIntents = createTargetedSendIntentsForResolvers(allAvailableResolvers, contentUri,
            mediaType);

    if (targetedIntents.isEmpty()) {
        throw new FailedToCreateViewIntentException(getText(R.string.file_handler_error));
    } else if (targetedIntents.size() == 1) {
        return targetedIntents.get(0);
    } else {
        return createChooser(targetedIntents, getText(R.string.upload_to));
    }
}

From source file:edu.stanford.mobisocial.dungbeetle.feed.objects.AppReferenceObj.java

@Override
public void handleDirectMessage(Context context, Contact from, JSONObject obj) {
    String packageName = obj.optString(PACKAGE_NAME);
    String arg = obj.optString(ARG);
    Intent launch = new Intent();
    launch.setAction(Intent.ACTION_MAIN);
    launch.addCategory(Intent.CATEGORY_LAUNCHER);
    launch.putExtra(AppState.EXTRA_APPLICATION_ARGUMENT, arg);
    launch.putExtra("creator", false);
    launch.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    launch.setPackage(packageName);//from w w  w.  j av  a2 s.c  o  m
    final PackageManager mgr = context.getPackageManager();
    List<ResolveInfo> resolved = mgr.queryIntentActivities(launch, 0);
    if (resolved == null || resolved.size() == 0) {
        Toast.makeText(context, "Could not find application to handle invite", Toast.LENGTH_SHORT).show();
        return;
    }
    ActivityInfo info = resolved.get(0).activityInfo;
    launch.setComponent(new ComponentName(info.packageName, info.name));
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, launch,
            PendingIntent.FLAG_CANCEL_CURRENT);

    (new PresenceAwareNotify(context)).notify("New Invitation", "Invitation received from " + from.name,
            "Click to launch application.", contentIntent);
}

From source file:ee.ria.DigiDoc.fragment.ContainerDataFilesFragment.java

private Intent createChooserOrViewIntentForDataFile(DataFileFacade dataFileFacade) {
    String fileName = dataFileFacade.getFileName();
    String mediaType = FileUtils.resolveMimeType(fileName);
    Uri contentUri = createShareUri(fileName);

    if (FileUtils.isContainer(fileName)) {
        return createViewIntent(contentUri, mediaType);
    }//from   w ww  .  j  a  v a  2  s  .c om

    Intent viewIntent = createViewIntent(contentUri, mediaType);
    PackageManager packageManager = getActivity().getPackageManager();

    List<ResolveInfo> allAvailableResolvers = packageManager.queryIntentActivities(viewIntent, 0);
    ResolveInfo defaultResolver = packageManager.resolveActivity(viewIntent, 0);

    Map<String, Intent> targetedIntents = createdTargetedViewIntentsForResolvers(allAvailableResolvers,
            contentUri, mediaType);

    if (targetedIntents.isEmpty()) {
        throw new FailedToCreateViewIntentException(getText(R.string.file_handler_error));
    } else if (targetedIntents.size() == 1) {
        return targetedIntents.values().iterator().next();
    } else if (targetedIntents.containsKey(resolvePackageName(defaultResolver))) {
        return targetedIntents.get(resolvePackageName(defaultResolver));
    } else {
        return createChooser(new ArrayList<>(targetedIntents.values()), getText(R.string.open_file_with));
    }
}

From source file:com.airk.interpolatordiagram.app.MainActivity.java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (mDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }/*  w  ww  . j av  a 2  s .c  o m*/
    if (item.getItemId() == R.id.action_rate) {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("market://details?id=com.airk.interpolatordiagram.app"));
        PackageManager pm = getPackageManager();
        List<ResolveInfo> list = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
        if (list.size() <= 0) {
            intent.setData(Uri.parse("https://market.android.com/details?id=com.airk.interpolatordiagram.app"));
        }
        startActivity(intent);
    } else if (item.getItemId() == R.id.action_about) {
        new AboutFragmentDialog().show(getSupportFragmentManager(), "about");
    }
    return super.onOptionsItemSelected(item);
}

From source file:Rangoli.testapp.Feed.NewPostActivity.java

@AfterPermissionGranted(RC_CAMERA_PERMISSIONS)
private void showImagePicker() {
    // Check for camera permissions
    if (!EasyPermissions.hasPermissions(this, cameraPerms)) {
        EasyPermissions.requestPermissions(this, "This sample will upload a picture from your Camera",
                RC_CAMERA_PERMISSIONS, cameraPerms);
        return;/*from  w  w  w.j  ava  2s.  c om*/
    }

    // Choose file storage location
    File file = new File(getExternalCacheDir(), UUID.randomUUID().toString());
    mFileUri = Uri.fromFile(file);

    // Camera
    final List<Intent> cameraIntents = new ArrayList<Intent>();
    final Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    final PackageManager packageManager = getPackageManager();
    final List<ResolveInfo> listCam = packageManager.queryIntentActivities(captureIntent, 0);
    for (ResolveInfo res : listCam) {
        final String packageName = res.activityInfo.packageName;
        final Intent intent = new Intent(captureIntent);
        intent.setComponent(new ComponentName(packageName, res.activityInfo.name));
        intent.setPackage(packageName);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, mFileUri);
        cameraIntents.add(intent);
    }

    // Image Picker
    Intent pickerIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

    Intent chooserIntent = Intent.createChooser(pickerIntent, "");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
            cameraIntents.toArray(new Parcelable[cameraIntents.size()]));
    startActivityForResult(chooserIntent, TC_PICK_IMAGE);
}

From source file:com.todoroo.astrid.helper.SyncActionHelper.java

public void performSyncAction() {
    List<SyncV2Provider> activeV2Providers = syncService.activeProviders();
    int activeSyncs = syncActions.size() + activeV2Providers.size();

    if (activeSyncs == 0) {
        String desiredCategory = activity.getString(R.string.SyP_label);

        // Get a list of all sync plugins and bring user to the prefs pane
        // for one of them
        Intent queryIntent = new Intent(AstridApiConstants.ACTION_SETTINGS);
        PackageManager pm = activity.getPackageManager();
        List<ResolveInfo> resolveInfoList = pm.queryIntentActivities(queryIntent, PackageManager.GET_META_DATA);
        int length = resolveInfoList.size();
        ArrayList<Intent> syncIntents = new ArrayList<Intent>();

        // Loop through a list of all packages (including plugins, addons)
        // that have a settings action: filter to sync actions
        for (int i = 0; i < length; i++) {
            ResolveInfo resolveInfo = resolveInfoList.get(i);
            Intent intent = new Intent(AstridApiConstants.ACTION_SETTINGS);
            intent.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);

            String category = MetadataHelper.resolveActivityCategoryName(resolveInfo, pm);

            if (GtasksPreferences.class.getName().equals(resolveInfo.activityInfo.name))
                continue;

            if (resolveInfo.activityInfo.metaData != null) {
                Bundle metadata = resolveInfo.activityInfo.metaData;
                if (!metadata.getBoolean("syncAction")) //$NON-NLS-1$
                    continue;
            }/*  ww  w .j a va 2 s . co  m*/

            if (category.equals(desiredCategory)) {
                syncIntents.add(new IntentWithLabel(intent, resolveInfo.activityInfo.loadLabel(pm).toString()));
            }
        }

        final Intent[] actions = syncIntents.toArray(new Intent[syncIntents.size()]);
        DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface click, int which) {
                fragment.startActivityForResult(actions[which], TaskListFragment.ACTIVITY_SETTINGS);
            }
        };
        if (actions.length == 1) {
            fragment.startActivityForResult(actions[0], TaskListFragment.ACTIVITY_SETTINGS);
        } else {
            showSyncOptionMenu(actions, listener);
        }

    } else {
        syncService.synchronizeActiveTasks(true, syncResultCallback);
    }
}

From source file:org.apache.cordova.nodialogspeechrecognizer.SpeechRecognizer.java

private void checkSpeechRecognition() {
    PackageManager pm = cordova.getActivity().getPackageManager();
    List activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);

    if (activities.size() != 0) {
        // is present
        this.callbackContext.success("RecognizerIntent.ACTION_RECOGNIZE_SPEECH found!");
    } else {//from w w w. j a  va2 s .  c  om
        // don't exist
        this.callbackContext.error("RecognizerIntent.ACTION_RECOGNIZE_SPEECH not found...");
    }
}