Java Code Examples for android.content.Intent#resolveActivity()

The following examples show how to use android.content.Intent#resolveActivity() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CallOutActivity.java    From commcare-android with Apache License 2.0 6 votes vote down vote up
private void dispatchAction() {
    if (Intent.ACTION_CALL.equals(calloutAction)) {
        tManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);

        Intent call = new Intent(Intent.ACTION_CALL);
        call.setData(Uri.parse("tel:" + number));
        if (call.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(call, CALL_RESULT);
        } else {
            Toast.makeText(this, Localization.get("callout.failure.dialer"), Toast.LENGTH_SHORT).show();
            finish();
        }
    } else {
        Intent sms = new Intent(Intent.ACTION_SENDTO);
        sms.setData(Uri.parse("smsto:" + number));
        if (sms.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(sms, SMS_RESULT);
        } else {
            Toast.makeText(this, Localization.get("callout.failure.sms"), Toast.LENGTH_SHORT).show();
            finish();
        }
    }
}
 
Example 2
Source File: IntentMatchers.java    From android-test with Apache License 2.0 6 votes vote down vote up
/**
 * Matches an intent if its package is the same as the target package for the instrumentation
 * test.
 */
public static Matcher<Intent> isInternal() {
  final Context targetContext = getApplicationContext();

  return new TypeSafeMatcher<Intent>() {
    @Override
    public void describeTo(Description description) {
      description.appendText("target package: " + targetContext.getPackageName());
    }

    @Override
    public boolean matchesSafely(Intent intent) {
      ComponentName component = intent.resolveActivity(targetContext.getPackageManager());
      if (component != null) {
        return hasMyPackageName().matches(component);
      }
      return false;
    }
  };
}
 
Example 3
Source File: MainActivity.java    From android-dev-challenge with Apache License 2.0 6 votes vote down vote up
/**
 * This method fires off an implicit Intent to open a webpage.
 *
 * @param url Url of webpage to open. Should start with http:// or https:// as that is the
 *            scheme of the URI expected with this Intent according to the Common Intents page
 */
private void openWebPage(String url) {
    /*
     * We wanted to demonstrate the Uri.parse method because its usage occurs frequently. You
     * could have just as easily passed in a Uri as the parameter of this method.
     */
    Uri webpage = Uri.parse(url);

    /*
     * Here, we create the Intent with the action of ACTION_VIEW. This action allows the user
     * to view particular content. In this case, our webpage URL.
     */
    Intent intent = new Intent(Intent.ACTION_VIEW, webpage);

    /*
     * This is a check we perform with every implicit Intent that we launch. In some cases,
     * the device where this code is running might not have an Activity to perform the action
     * with the data we've specified. Without this check, in those cases your app would crash.
     */
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}
 
Example 4
Source File: PopupComposeStatus.java    From Rumble with GNU General Public License v3.0 5 votes vote down vote up
@Override
public void onClick(View view) {
    final Activity activity = PopupComposeStatus.this;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (ContextCompat.checkSelfPermission(activity, Manifest.permission.CAMERA)
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(activity,
                    new String[]{Manifest.permission.CAMERA}, REQUEST_PERMISSION_CAMERA);
            return;
        }
    }

    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(activity.getPackageManager()) != null) {
        File photoFile;
        try {
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
            File storageDir = FileUtil.getWritableAlbumStorageDir();
            String imageFileName = "JPEG_" + timeStamp + "_";
            String suffix = ".jpg";
            photoFile = File.createTempFile(
                    imageFileName,  /* prefix */
                    suffix,         /* suffix */
                    storageDir      /* directory */
            );
            pictureTaken = photoFile.getName();
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
            activity.startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
        } catch (IOException error) {
            Log.e(TAG, "[!] cannot create photo file > " + error.getMessage());
        }
    }
}
 
Example 5
Source File: ConfigurationActivity.java    From Noyze with Apache License 2.0 5 votes vote down vote up
private void launchGooglePlus() {
    Intent google = new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.google_plus_url)));
    if (google.resolveActivity(getPackageManager()) != null) {
        startActivity(google);
    } else {
        Crouton.showText(this, R.string.url_error, Style.ALERT);
    }
}
 
Example 6
Source File: MainActivity.java    From Aftermath with Apache License 2.0 5 votes vote down vote up
public void startPhotoPicker(View view) {
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("image/*");
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(intent, OTHER_REQUEST);
    }
}
 
Example 7
Source File: DfuActivity.java    From Android-nRF-Toolbox with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
private void openFileChooser() {
	final Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
	intent.setType(fileTypeTmp == DfuService.TYPE_AUTO ? DfuService.MIME_TYPE_ZIP : DfuService.MIME_TYPE_OCTET_STREAM);
	intent.addCategory(Intent.CATEGORY_OPENABLE);
	if (intent.resolveActivity(getPackageManager()) != null) {
		// file browser has been found on the device
		startActivityForResult(intent, SELECT_FILE_REQ);
	} else {
		// there is no any file browser app, let's try to download one
		final View customView = getLayoutInflater().inflate(R.layout.app_file_browser, null);
		final ListView appsList = customView.findViewById(android.R.id.list);
		appsList.setAdapter(new FileBrowserAppsAdapter(this));
		appsList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
		appsList.setItemChecked(0, true);
		new AlertDialog.Builder(this)
				.setTitle(R.string.dfu_alert_no_filebrowser_title)
				.setView(customView)
				.setNegativeButton(R.string.no, (dialog, which) -> dialog.dismiss())
				.setPositiveButton(R.string.ok, (dialog, which) -> {
					final int pos = appsList.getCheckedItemPosition();
					if (pos >= 0) {
						final String query = getResources().getStringArray(R.array.dfu_app_file_browser_action)[pos];
						final Intent storeIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(query));
						startActivity(storeIntent);
					}
				})
				.show();
	}
}
 
Example 8
Source File: DetailActivity.java    From android-popular-movies-app with Apache License 2.0 5 votes vote down vote up
/**
 * Use Intent to open a YouTube link in either the native app or a web browser of choice
 *
 * @param videoUrl The first trailer's YouTube URL
 */
private void launchTrailer(String videoUrl) {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(videoUrl));
    if (intent.resolveActivity(this.getPackageManager()) != null) {
        startActivity(intent);
    }
}
 
Example 9
Source File: MainActivity.java    From ScaleSketchPadDemo with MIT License 5 votes vote down vote up
public void composeEmail(String[] addresses, String subject) {
    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:[email protected]")); // only email apps should handle this
    intent.putExtra(Intent.EXTRA_EMAIL, addresses);
    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}
 
Example 10
Source File: BottomSheetImagePicker.java    From HaiNaBaiChuan with Apache License 2.0 5 votes vote down vote up
/**
 * This checks to see if there is a suitable activity to handle the `ACTION_PICK` intent
 * and returns it if found. {@link Intent#ACTION_PICK} is for picking an image from an external app.
 *
 * @return A prepared intent if found.
 */
@Nullable
private Intent createPickIntent() {
    if (pickerType != PickerType.CAMERA) {
        Intent picImageIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        if (picImageIntent.resolveActivity(getActivity().getPackageManager()) != null) {
            return picImageIntent;
        }
    }
    return null;
}
 
Example 11
Source File: MainActivity.java    From android-dev-challenge with Apache License 2.0 5 votes vote down vote up
/**
 * This method uses the URI scheme for showing a location found on a map in conjunction with
 * an implicit Intent. This super-handy intent is detailed in the "Common Intents" page of
 * Android's developer site:
 *
 * @see "http://developer.android.com/guide/components/intents-common.html#Maps"
 * <p>
 * Protip: Hold Command on Mac or Control on Windows and click that link to automagically
 * open the Common Intents page
 */
private void openLocationInMap() {
    String addressString = "1600 Ampitheatre Parkway, CA";
    Uri geoLocation = Uri.parse("geo:0,0?q=" + addressString);

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(geoLocation);

    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    } else {
        Log.d(TAG, "Couldn't call " + geoLocation.toString() + ", no receiving apps installed!");
    }
}
 
Example 12
Source File: ActivitySetup.java    From FairEmail with GNU General Public License v3.0 5 votes vote down vote up
private void onImportCertificate(Intent intent) {
    Intent open = new Intent(Intent.ACTION_GET_CONTENT);
    open.addCategory(Intent.CATEGORY_OPENABLE);
    open.setType("*/*");
    if (open.resolveActivity(getPackageManager()) == null)  // system whitelisted
        ToastEx.makeText(this, R.string.title_no_saf, Toast.LENGTH_LONG).show();
    else
        startActivityForResult(Helper.getChooser(this, open), REQUEST_IMPORT_CERTIFICATE);
}
 
Example 13
Source File: ModularBuild.java    From APDE with GNU General Public License v2.0 5 votes vote down vote up
private void launchPreview(BuildContext context) {
	// Stop the old sketch
	global.sendBroadcast(new Intent("com.calsignlabs.apde.STOP_SKETCH_PREVIEW"));
	
	String dexUri = makeFileAvailableToPreview(PREVIEW_SKETCH_DEX.get(context)).toString();
	String dataUri = context.hasData() ?
			makeFileAvailableToPreview(PREVIEW_SKETCH_DATA.get(context)).toString() : "";
	
	String[] libUris = new String[context.getLibraryDexedLibs().size()];
	
	for (int i = 0; i < libUris.length; i ++) {
		libUris[i] = makeFileAvailableToPreview(new File(context.getRootFilesDir(),
				previewDexJarPrefix + context.getLibraryDexedLibs().get(i).getName())).toString();
	}
	
	// Build intent specifically for sketch previewer
	Intent intent = new Intent("com.calsignlabs.apde.RUN_SKETCH_PREVIEW");
	intent.setPackage("com.calsignlabs.apde.sketchpreview");
	intent.putExtra("SKETCH_DEX", dexUri);
	intent.putExtra("SKETCH_DATA_FOLDER", dataUri);
	intent.putExtra("SKETCH_DEXED_LIBS", libUris);
	intent.putExtra("SKETCH_ORIENTATION", context.getManifest().getOrientation());
	intent.putExtra("SKETCH_PACKAGE_NAME", context.getPackageName());
	intent.putExtra("SKETCH_CLASS_NAME", context.getSketchName());
	
	// Launch in multi-window mode if available
	if (android.os.Build.VERSION.SDK_INT >= 24) {
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT);
	} else {
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
	}
	if (intent.resolveActivity(global.getPackageManager()) != null) {
		global.startActivity(intent);
	}
}
 
Example 14
Source File: IntentUtils.java    From android-utils with Apache License 2.0 5 votes vote down vote up
/**
 * Call.
 *
 * @param context the context
 * @param number  the number
 */
@RequiresPermission(permission.CALL_PHONE)
public static void call(Context context, String number) {
    Intent intent = new Intent(Intent.ACTION_CALL);
    intent.setData(Uri.parse("tel:" + number));
    if (ActivityCompat.checkSelfPermission(context, Manifest.permission.CALL_PHONE) !=
            PackageManager.PERMISSION_GRANTED) {
        // Permission is not granted, return
        return;
    }

    if (intent.resolveActivity(context.getPackageManager()) != null) {
        context.startActivity(intent);
    }
}
 
Example 15
Source File: MaoniEmailListener.java    From maoni-email with MIT License 4 votes vote down vote up
@Override
public boolean onSendButtonClicked(final Feedback feedback) {

    final Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
    intent.setData(Uri.parse("mailto:")); // only email apps should handle this
    intent.putExtra(Intent.EXTRA_SUBJECT,
            mSubject != null ? mSubject : DEFAULT_EMAIL_SUBJECT);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
        if (mToAddresses != null) {
            intent.putExtra(Intent.EXTRA_EMAIL, mToAddresses);
        }
        if (mCcAddresses != null) {
            intent.putExtra(Intent.EXTRA_CC, mCcAddresses);
        }
        if (mBccAddresses != null) {
            intent.putExtra(Intent.EXTRA_BCC, mBccAddresses);
        }
    }
    if (mMimeType != null) {
        intent.setType(mMimeType);
    }

    final StringBuilder body = new StringBuilder();
    if (mBodyHeader != null) {
        body.append(mBodyHeader).append("\n\n");
    }

    body.append(feedback.userComment).append("\n\n");

    body.append("\n------------\n");
    body.append("- Feedback ID: ").append(feedback.id).append("\n");

    final Map<CharSequence, Object> additionalData = feedback.getAdditionalData();
    if (additionalData != null) {
        body.append("\n------ Extra-fields ------\n");
        for (final Map.Entry<CharSequence, Object> entry : additionalData.entrySet()) {
            body.append("- ")
                    .append(entry.getKey()).append(": ").
                    append(entry.getValue()).append("\n");
        }
    }

    body.append("\n------ Application ------\n");
    if (feedback.appInfo != null) {
        if (feedback.appInfo.applicationId != null) {
            body.append("- Application ID: ").append(feedback.appInfo.applicationId).append("\n");
        }
        if (feedback.appInfo.caller != null) {
            body.append("- Activity: ").append(feedback.appInfo.caller).append("\n");
        }
        if (feedback.appInfo.buildType != null) {
            body.append("- Build Type: ").append(feedback.appInfo.buildType).append("\n");
        }
        if (feedback.appInfo.flavor != null) {
            body.append("- Flavor: ").append(feedback.appInfo.flavor).append("\n");
        }
        if (feedback.appInfo.versionCode != null) {
            body.append("- Version Code: ").append(feedback.appInfo.versionCode).append("\n");
        }
        if (feedback.appInfo.versionName != null) {
            body.append("- Version Name: ").append(feedback.appInfo.versionName).append("\n");
        }
    }

    body.append("\n------ Device ------\n");
    if (feedback.deviceInfo != null) {
        body.append(feedback.deviceInfo.toString());
    }
    body.append("\n\n");

    if (mBodyFooter != null) {
        body.append("\n--").append(mBodyFooter);
    }

    intent.putExtra(Intent.EXTRA_TEXT, body.toString());

    final ComponentName componentName = intent.resolveActivity(mContext.getPackageManager());
    if (componentName != null) {
        //Add screenshot as attachment
        final ArrayList<Uri> attachmentsUris = new ArrayList<>();
        if (feedback.screenshotFileUri != null) {
            //Grant READ permission to the intent
            mContext.grantUriPermission(componentName.getPackageName(),
                    feedback.screenshotFileUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
            attachmentsUris.add(feedback.screenshotFileUri);
        }
        //Add logs file as attachment
        if (feedback.logsFileUri != null) {
            //Grant READ permission to the intent
            mContext.grantUriPermission(componentName.getPackageName(),
                    feedback.logsFileUri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
            attachmentsUris.add(feedback.logsFileUri);
        }
        if (!attachmentsUris.isEmpty()) {
            intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, attachmentsUris);
        }
        mContext.startActivity(intent);
    }

    return true;
}
 
Example 16
Source File: DebugOverlayController.java    From react-native-GPay with MIT License 4 votes vote down vote up
private static boolean canHandleIntent(Context context, Intent intent) {
  PackageManager packageManager = context.getPackageManager();
  return intent.resolveActivity(packageManager) != null;
}
 
Example 17
Source File: Command.java    From BotLibre with Eclipse Public License 1.0 4 votes vote down vote up
public void map() {
	String query = ((String) jsonObject.opt("query"));
	String dirFrom = (String) jsonObject.opt("directions-from");
	String dirTo = (String) jsonObject.opt("directions-to");
	String mode = (String) jsonObject.opt("mode");
	String avoid = (String) jsonObject.opt("avoid");

	Intent mapIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0"));
	mapIntent.setPackage("com.google.android.apps.maps");

	if (query != null) {
		query = Uri.encode(query);
		mapIntent.setData(Uri.parse("geo:0,0?q="+query));
	} 

	if (dirTo != null && dirFrom == null) {
		String directions = "google.navigation:q="+Uri.encode(dirTo);
		StringBuilder sb = new StringBuilder(directions); 

		if (mode != null) {
			if (mode.contains("driv")) 			sb.append("&mode=d");
			else if (mode.contains("walk")) 	sb.append("&mode=w");
			else if (mode.contains("bic") || mode.contains("bik")) sb.append("&mode=b");

		} else if (avoid != null) {
			sb.append("&avoid=");
			if (avoid.contains("toll")) sb.append("t");	
			if (avoid.contains("high")) sb.append("h");	
			if (avoid.contains("ferr")) sb.append("f");	
		} 
		directions = sb.toString();
		mapIntent.setData(Uri.parse(directions));
	} else if (dirTo != null && dirFrom != null) {
		mapIntent.setData(Uri.parse("http://maps.google.com/maps?saddr="+Uri.encode(dirFrom)+"&daddr="+Uri.encode(dirTo)));
	}
	if (mapIntent.resolveActivity(manager) != null) {
		context.startActivity(mapIntent);
	} else {
		MainActivity.showMessage("Google maps not available on your device", (Activity)context);
	}


}
 
Example 18
Source File: Utils.java    From UTubeTV with The Unlicense 4 votes vote down vote up
public static void openWebPage(Activity activity, Uri webpage) {
  Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
  if (intent.resolveActivity(activity.getPackageManager()) != null) {
    activity.startActivity(intent);
  }
}
 
Example 19
Source File: BrowserActivity.java    From browser with GNU General Public License v2.0 4 votes vote down vote up
@Override
public void showFileChooser(ValueCallback<Uri[]> filePathCallback) {
	if (mFilePathCallback != null) {
		mFilePathCallback.onReceiveValue(null);
	}
	mFilePathCallback = filePathCallback;

	Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
	if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
		// Create the File where the photo should go
		File photoFile = null;
		try {
			photoFile = Utils.createImageFile();
			takePictureIntent.putExtra("PhotoPath", mCameraPhotoPath);
		} catch (IOException ex) {
			// Error occurred while creating the File
			Log.e(Constants.TAG, "Unable to create Image File", ex);
		}

		// Continue only if the File was successfully created
		if (photoFile != null) {
			mCameraPhotoPath = "file:" + photoFile.getAbsolutePath();
			takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
		} else {
			takePictureIntent = null;
		}
	}

	Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
	contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
	contentSelectionIntent.setType("image/*");

	Intent[] intentArray;
	if (takePictureIntent != null) {
		intentArray = new Intent[] { takePictureIntent };
	} else {
		intentArray = new Intent[0];
	}

	Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
	chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
	chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser");
	chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);

	mActivity.startActivityForResult(chooserIntent, 1);
}
 
Example 20
Source File: Utils.java    From medic-android with GNU Affero General Public License v3.0 4 votes vote down vote up
static boolean intentHandlerAvailableFor(Context ctx, Intent intent) {
	return intent.resolveActivity(ctx.getPackageManager()) != null;
}