Java 类android.content.pm.LabeledIntent 实例源码
项目:10000sentences
文件:ShareUtils.java
/**
* Share with other applications (but tries to put applications with "Translate" in the package
* name in the first place(s).
*/
public static void shareWithTranslate(Activity activity, String text) {
Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(android.content.Intent.EXTRA_TEXT, text);
PackageManager pm = activity.getPackageManager();
List<ResolveInfo> resInfo = pm.queryIntentActivities(sendIntent, 0);
List<LabeledIntent> intentList = new ArrayList<>();
for (ResolveInfo ri : resInfo) {
if(ri.activityInfo.packageName.contains("translate")) {
Intent intent = new Intent();
intent.setComponent(new ComponentName(ri.activityInfo.packageName, ri.activityInfo.name));
intent.putExtra(android.content.Intent.EXTRA_TEXT, text);
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intentList.add(new LabeledIntent(intent, ri.activityInfo.packageName, ri.loadLabel(pm), ri.icon));
}
}
LabeledIntent[] extraIntents = intentList.toArray( new LabeledIntent[ intentList.size() ]);
Intent openInChooser = Intent.createChooser(sendIntent, "Translate");
openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
activity.startActivity(openInChooser);
}
项目:autotracks-android
文件:ShareIntentBuilder.java
private static LabeledIntent[] getLabeledIntents(Context context) {
Intent sendIntent = getShareIntent(context);
PackageManager pm = context.getPackageManager();
List<ResolveInfo> resInfo = pm.queryIntentActivities(sendIntent, 0);
List<LabeledIntent> intents = new ArrayList<>();
for (ResolveInfo ri : resInfo) {
String packageName = ri.activityInfo.packageName;
if (packageName.contains("twitter")
|| packageName.contains("facebook")
|| packageName.contains("whatsapp")
|| packageName.contains("plus")
|| packageName.contains("talk")
|| packageName.contains("viber")) {
Intent intent = getShareIntent(context);
intent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
intents.add(new LabeledIntent(intent, packageName, ri.loadLabel(pm), ri.icon));
}
}
return intents.toArray(new LabeledIntent[intents.size()]);
}
项目:xowa_android
文件:ShareUtil.java
private static LabeledIntent buildLabeledIntent(Intent intent, ResolveInfo intentActivity) {
LabeledIntent labeledIntent = new LabeledIntent(intent, intentActivity.resolvePackageName,
intentActivity.labelRes, intentActivity.getIconResource());
labeledIntent.setPackage(getPackageName(intentActivity));
labeledIntent.setClassName(getPackageName(intentActivity), intentActivity.activityInfo.name);
return labeledIntent;
}
项目:SafeSlinger-Android
文件:HomeActivity.java
private void showFileAttach() {
final List<Intent> allIntents = new ArrayList<Intent>();
// all openable...
Intent contentIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentIntent.setType(SafeSlingerConfig.MIMETYPE_ADD_ATTACH);
contentIntent.addCategory(Intent.CATEGORY_OPENABLE);
// camera
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
SafeSlinger.setTempCameraFileUri(SSUtil.makeCameraOutputUri());
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, SafeSlinger.getTempCameraFileUri());
allIntents.add(cameraIntent);
// audio recorder
Intent recorderIntent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
recorderIntent.putExtra(MediaStore.EXTRA_OUTPUT, SSUtil.makeRecorderOutputUri());
allIntents.add(recorderIntent);
// our custom browser
if (SSUtil.isExternalStorageReadable()) {
Intent filePickIntent = new Intent(HomeActivity.this, FilePickerActivity.class);
LabeledIntent fileIntent = new LabeledIntent(filePickIntent,
filePickIntent.getPackage(), R.string.menu_FileManager,
R.drawable.ic_menu_directory);
allIntents.add(fileIntent);
}
// Chooser of file system options.
Intent chooserIntent = Intent.createChooser(contentIntent,
getString(R.string.title_ChooseFileLoad));
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
allIntents.toArray(new Parcelable[] {}));
startActivityForResult(chooserIntent, VIEW_FILEATTACH_ID);
}
项目:apps-android-wikipedia
文件:ShareUtil.java
private static LabeledIntent buildLabeledIntent(Intent intent, ResolveInfo intentActivity) {
LabeledIntent labeledIntent = new LabeledIntent(intent, intentActivity.resolvePackageName,
intentActivity.labelRes, intentActivity.getIconResource());
labeledIntent.setPackage(getPackageName(intentActivity));
labeledIntent.setClassName(getPackageName(intentActivity), intentActivity.activityInfo.name);
return labeledIntent;
}
项目:tazapp-android
文件:Paper.java
@Override
public Intent getShareIntent(Context context) {
StorageManager storage = StorageManager.getInstance(context);
File pdfFile = new File(storage.getPaperDirectory(getPaper()), getKey());
File papersDir = storage.get(StorageManager.PAPER);
try {
String pagePath = pdfFile.getCanonicalPath()
.replace(papersDir.getCanonicalPath(), "papers");
Uri contentUri = Uri.parse("content://" + BuildConfig.APPLICATION_ID + ".streamprovider")
.buildUpon()
.appendEncodedPath(pagePath)
.build();
//share Intent
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("application/pdf");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra(Intent.EXTRA_STREAM, contentUri);
intent.putExtra(Intent.EXTRA_SUBJECT, getPaper().getTitelWithDate(context) + ": " + getTitle());
intent.putExtra(Intent.EXTRA_TEXT, getPaper().getTitelWithDate(context) + "\n" + getTitle());
//get extra intents to view pdf
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
viewIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
viewIntent.setData(contentUri);
PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> resInfo = packageManager.queryIntentActivities(viewIntent, 0);
Intent[] extraIntents = new Intent[resInfo.size()];
for (int i = 0; i < resInfo.size(); i++) {
// Extract the label, append it, and repackage it in a LabeledIntent
ResolveInfo ri = resInfo.get(i);
String packageName = ri.activityInfo.packageName;
Intent extraViewIntent = new Intent();
extraViewIntent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
extraViewIntent.setAction(Intent.ACTION_VIEW);
extraViewIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
extraViewIntent.setData(contentUri);
CharSequence label = ri.loadLabel(packageManager);
extraIntents[i] = new LabeledIntent(extraViewIntent, packageName, label, ri.icon);
}
Intent chooserIntent = Intent.createChooser(intent, context.getString(R.string.reader_action_share_open));
if (extraIntents.length > 0) chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
return chooserIntent;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
项目:Common-Android
文件:ShareIntentBuilder.java
public Intent build(String chooserTitle, final Context context) throws NoShareIntentsException {
if (_intents.isEmpty()) {
throw new IllegalStateException("Please add shares!");
}
final PackageManager packageManager = context.getPackageManager();
ArrayList<LabeledIntent> extraIntents = new ArrayList<>(_intents.size() * 2);
Intent mainIntent = null;
for (int i = 0; i < _intents.size(); ++i) {
Intent intent = _intents.get(i);
List<ResolveInfo> resolveInfoList = packageManager.queryIntentActivities(intent, 0);
if (resolveInfoList == null) {//Some devices return null...
continue;
}
if (mainIntent == null && resolveInfoList.isEmpty() == false) {
mainIntent = intent;
//This will be main chooser so we don't want duplicates
continue;
}
for (ResolveInfo info : resolveInfoList) {
// Extract the label, append it, and repackage it in a LabeledIntent
String packageName = info.activityInfo.packageName;
intent.setComponent(new ComponentName(packageName, info.activityInfo.name));
final LabeledIntent labeledIntent =
new LabeledIntent(intent, packageName, info.loadLabel(packageManager), info.icon);
extraIntents.add(labeledIntent);
}
}
if (mainIntent == null) {
Logger.e("No app can't handle such share request");
throw new NoShareIntentsException("No app can't handle such share request");
}
final Intent chooser = Intent.createChooser(mainIntent, chooserTitle);
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents.toArray(new LabeledIntent[extraIntents.size()]));
return chooser;
}
项目:MobiStego
文件:MainActivity.java
@Override
public void itemViewOnShare(MobiStegoItem mobiStegoItem) {
PackageManager pm = getPackageManager();
Intent emailIntent = new Intent(Intent.ACTION_SEND);
//emailIntent.setType("vnd.android.cursor.item/*");
emailIntent.setType("vnd.android.cursor.item/*");
Intent openInChooser = Intent.createChooser(new Intent(), getResources().getString(R.string.send));
File f = mobiStegoItem.getBitmap();
if (f != null) {
List<ResolveInfo> resInfo = pm.queryIntentActivities(emailIntent, 0);
List<LabeledIntent> intentList = new ArrayList<>();
for (int i = 0; i < resInfo.size(); i++) {
// Extract the label, append it, and repackage it in a LabeledIntent
ResolveInfo ri = resInfo.get(i);
String packageName = ri.activityInfo.packageName;
if(packageName.contains("whatsapp")||packageName.contains("telegram"))
continue;
Intent intent = new Intent();
intent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
intent.setAction(Intent.ACTION_SEND);
intent.setType("vnd.android.cursor.item/*");
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
intentList.add(new LabeledIntent(intent, packageName, ri.loadLabel(pm), ri.icon));
}
// convert intentList to array
LabeledIntent[] extraIntents = intentList.toArray( new LabeledIntent[ intentList.size() ]);
openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
startActivity(openInChooser);
//startActivity(Intent.createChooser(emailIntent, getResources().getString(R.string.send)));
}
}
项目:kotoha-android
文件:AppUtils.java
public static void openMailChooser(Context context, String text, String[] mails, String subject) {
Intent mailIntent = new Intent();
mailIntent.setAction(Intent.ACTION_SEND);
mailIntent.putExtra(Intent.EXTRA_TEXT, text);
mailIntent.putExtra(Intent.EXTRA_EMAIL, mails);
mailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
mailIntent.setType(INTENT_TYPE_MSG);
PackageManager pm = context.getPackageManager();
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType(INTENT_TYPE_TEXT);
Intent openInChooser = Intent.createChooser(mailIntent, "");
List<ResolveInfo> resInfo = pm.queryIntentActivities(sendIntent, 0);
List<LabeledIntent> intentList = new ArrayList<LabeledIntent>();
for (ResolveInfo ri : resInfo) {
String packageName = ri.activityInfo.packageName;
if (packageName.contains(PACKAGE_EMAIL)) {
mailIntent.setPackage(packageName);
} else if (packageName.contains(PACKAGE_MMS) || packageName.contains(PACKAGE_GMAIL)) {
Intent intent = new Intent();
intent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
intent.setAction(Intent.ACTION_SEND);
intent.setType(INTENT_TYPE_TEXT);
if (packageName.contains(PACKAGE_MMS)) {
intent.putExtra("subject", subject);
intent.putExtra("sms_body", text);
intent.putExtra("address", mails[0]);
intent.setType(INTENT_TYPE_MSG);
} else if (packageName.contains(PACKAGE_GMAIL)) {
intent.putExtra(Intent.EXTRA_TEXT, text);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_EMAIL, mails);
intent.setType(INTENT_TYPE_MSG);
}
intentList.add(new LabeledIntent(intent, packageName, ri.loadLabel(pm), ri.icon));
}
}
LabeledIntent[] extraIntents = intentList.toArray(new LabeledIntent[intentList.size()]);
openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
context.startActivity(openInChooser);
}
项目:appcutt
文件:AppUtils.java
public static void openMailChooser(Context context, String text, String[] mails, String subject) {
Intent mailIntent = new Intent();
mailIntent.setAction(Intent.ACTION_SEND);
mailIntent.putExtra(Intent.EXTRA_TEXT, text);
mailIntent.putExtra(Intent.EXTRA_EMAIL, mails);
mailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
mailIntent.setType(INTENT_TYPE_MSG);
PackageManager pm = context.getPackageManager();
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType(INTENT_TYPE_TEXT);
Intent openInChooser = Intent.createChooser(mailIntent, "");
List<ResolveInfo> resInfo = pm.queryIntentActivities(sendIntent, 0);
List<LabeledIntent> intentList = new ArrayList<LabeledIntent>();
for (ResolveInfo ri : resInfo) {
String packageName = ri.activityInfo.packageName;
if (packageName.contains(PACKAGE_EMAIL)) {
mailIntent.setPackage(packageName);
} else if (packageName.contains(PACKAGE_MMS) || packageName.contains(PACKAGE_GMAIL)) {
Intent intent = new Intent();
intent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
intent.setAction(Intent.ACTION_SEND);
intent.setType(INTENT_TYPE_TEXT);
if (packageName.contains(PACKAGE_MMS)) {
intent.putExtra("subject", subject);
intent.putExtra("sms_body", text);
intent.putExtra("address", mails[0]);
intent.setType(INTENT_TYPE_MSG);
} else if (packageName.contains(PACKAGE_GMAIL)) {
intent.putExtra(Intent.EXTRA_TEXT, text);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_EMAIL, mails);
intent.setType(INTENT_TYPE_MSG);
}
intentList.add(new LabeledIntent(intent, packageName, ri.loadLabel(pm), ri.icon));
}
}
LabeledIntent[] extraIntents = intentList.toArray(new LabeledIntent[intentList.size()]);
openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
context.startActivity(openInChooser);
}