本文整理汇总了Java中android.content.pm.PackageManager.queryIntentActivities方法的典型用法代码示例。如果您正苦于以下问题:Java PackageManager.queryIntentActivities方法的具体用法?Java PackageManager.queryIntentActivities怎么用?Java PackageManager.queryIntentActivities使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.content.pm.PackageManager
的用法示例。
在下文中一共展示了PackageManager.queryIntentActivities方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: hasSpecializedHandlerIntents
import android.content.pm.PackageManager; //导入方法依赖的package包/类
/**
* Used to check whether there is a specialized handler for a given intent.
* @param intent The intent to check with.
* @return Whether there is a specialized handler for the given intent.
*/
private static boolean hasSpecializedHandlerIntents(Context context, Intent intent) {
try {
PackageManager pm = context.getPackageManager();
List<ResolveInfo> handlers = pm.queryIntentActivities(
intent,
PackageManager.GET_RESOLVED_FILTER);
if (handlers == null || handlers.size() == 0) {
return false;
}
for (ResolveInfo resolveInfo : handlers) {
IntentFilter filter = resolveInfo.filter;
if (filter == null) continue;
if (filter.countDataAuthorities() == 0 || filter.countDataPaths() == 0) continue;
if (resolveInfo.activityInfo == null) continue;
return true;
}
} catch (RuntimeException e) {
Log.e(TAG, "Runtime exception while getting specialized handlers");
}
return false;
}
示例2: openApp
import android.content.pm.PackageManager; //导入方法依赖的package包/类
public static boolean openApp(Context context, String isAppPackageName) {
Intent mainIntent = new Intent("android.intent.action.MAIN", null);
mainIntent.addCategory("android.intent.category.LAUNCHER");
PackageManager mPackageManager = BaseApplication.getInstance().getApplicationContext().getPackageManager();
List<ResolveInfo> mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0);
Collections.sort(mAllApps, new DisplayNameComparator(mPackageManager));
for (ResolveInfo res : mAllApps) {
String pkg = res.activityInfo.packageName;
String cls = res.activityInfo.name;
LogInfo.log("Emerson", "-------pkg = " + pkg + "--cls = " + cls);
if (res.activityInfo.packageName.equals(isAppPackageName)) {
ComponentName componet = new ComponentName(pkg, cls);
Intent intent = new Intent();
intent.setComponent(componet);
intent.addFlags(268435456);
context.startActivity(intent);
return true;
}
}
return false;
}
示例3: getAppForShare
import android.content.pm.PackageManager; //导入方法依赖的package包/类
private ActivityInfo getAppForShare(StickerData stickerData) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
//intent.setType("image/gif");
intent.setType(stickerData.mime);
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(intent, 0);
for (ResolveInfo act : activities) {
ActivityInfo ai = act.activityInfo;
//Log.d("###",""+editorInfo.packageName+" :: "+ai.applicationInfo.packageName+" | "+ai.name);
if (editorInfo.packageName.equalsIgnoreCase(ai.applicationInfo.packageName)) {
return ai;
}
}
return null;
}
示例4: resolveBrowsers
import android.content.pm.PackageManager; //导入方法依赖的package包/类
private Map<String, ActivityInfo> resolveBrowsers(Context context, PackageManager packageManager, @NonNull Uri uri) {
final Map<String, ActivityInfo> browsers = new HashMap<>();
final Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri);
final List<ResolveInfo> infos = packageManager.queryIntentActivities(intent, 0);
for (ResolveInfo info : infos) {
if (!context.getPackageName().equals(info.activityInfo.packageName)) {
browsers.put(info.activityInfo.packageName, info.activityInfo);
}
}
return browsers;
}
示例5: isHaveMarket
import android.content.pm.PackageManager; //导入方法依赖的package包/类
public static boolean isHaveMarket(Context context) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_APP_MARKET);
PackageManager pm = context.getPackageManager();
List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);
return infos.size() > 0;
}
示例6: startWithNoWebUrl
import android.content.pm.PackageManager; //导入方法依赖的package包/类
public static boolean startWithNoWebUrl(Uri uri) {
String path = uri.getPath();
if (!TextUtils.isEmpty(path)) {
Intent intent = FileUtils.buildOpenIntent(uri);
if (intent != null) { //优先通过外部程序打开
PackageManager packageManager = getContext().getPackageManager();
List<ResolveInfo> activityInfoList = packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
if (activityInfoList != null && activityInfoList.size() > 0) {
jumpActivity(intent);
return true;
}
}
}
return false;
}
示例7: loadShortcuts
import android.content.pm.PackageManager; //导入方法依赖的package包/类
@SuppressLint("WrongConstant")
public static List<ShortcutInfo> loadShortcuts(Context context, String packageName) {
if (!SDKUtil.AT_LEAST_N_MR1) {
return null;
}
LauncherApps launcherApps = (LauncherApps) context.getSystemService(Context.LAUNCHER_APPS_SERVICE);
if (launcherApps == null) {
return null;
}
if (!launcherApps.hasShortcutHostPermission()) {
return null;
}
PackageManager packageManager = context.getPackageManager();
Intent mainIntent = new Intent("android.intent.action.MAIN", null);
mainIntent.addCategory("android.intent.category.LAUNCHER");
if (packageManager != null && packageManager.queryIntentActivities(mainIntent, 0) != null) {
try {
return launcherApps.getShortcuts((new LauncherApps.ShortcutQuery())
.setPackage(packageName).setQueryFlags(QUERY_FLAGS),
UserHandle.getUserHandleForUid(context.getPackageManager().getPackageUid(packageName, PackageManager.GET_META_DATA)));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return null;
}
}
return null;
}
示例8: isHaveMarket
import android.content.pm.PackageManager; //导入方法依赖的package包/类
public static boolean isHaveMarket(Context context) {
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.APP_MARKET");
PackageManager pm = context.getPackageManager();
List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);
return infos.size() > 0;
}
示例9: getUninstallAppList
import android.content.pm.PackageManager; //导入方法依赖的package包/类
public ArrayList<AppBean> getUninstallAppList() {
PackageManager localPackageManager = mContext.getPackageManager();
Intent localIntent = new Intent("android.intent.action.MAIN");
localIntent.addCategory("android.intent.category.LAUNCHER");
List<ResolveInfo> localList = localPackageManager.queryIntentActivities(localIntent, 0);
ArrayList<AppBean> localArrayList = null;
Iterator<ResolveInfo> localIterator = null;
if (localList != null) {
localArrayList = new ArrayList<AppBean>();
localIterator = localList.iterator();
}
while (true) {
if (!localIterator.hasNext())
break;
ResolveInfo localResolveInfo = (ResolveInfo) localIterator.next();
AppBean localAppBean = new AppBean();
localAppBean.setIcon(localResolveInfo.activityInfo.loadIcon(localPackageManager));
localAppBean.setName(localResolveInfo.activityInfo.loadLabel(localPackageManager).toString());
localAppBean.setPackageName(localResolveInfo.activityInfo.packageName);
localAppBean.setDataDir(localResolveInfo.activityInfo.applicationInfo.publicSourceDir);
String pkgName = localResolveInfo.activityInfo.packageName;
PackageInfo mPackageInfo;
try {
mPackageInfo = mContext.getPackageManager().getPackageInfo(pkgName, 0);
if ((mPackageInfo.applicationInfo.flags & mPackageInfo.applicationInfo.FLAG_SYSTEM) > 0) {//系统预装
localAppBean.setSysApp(true);
} else {
localArrayList.add(localAppBean);
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
return localArrayList;
}
示例10: getPackageNameToUse
import android.content.pm.PackageManager; //导入方法依赖的package包/类
/**
* Goes through all apps that handle VIEW intents and have a warmup service. Picks
* the one chosen by the user if there is one, otherwise makes a best effort to return a
* valid package name.
*
* This is <strong>not</strong> threadsafe.
*
* @param context {@link Context} to use for accessing {@link PackageManager}.
* @return The package name recommended to use for connecting to custom tabs related components.
*/
public static String getPackageNameToUse(Context context) {
if (sPackageNameToUse != null) return sPackageNameToUse;
PackageManager pm = context.getPackageManager();
// Get default VIEW intent handler.
Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
ResolveInfo defaultViewHandlerInfo = pm.resolveActivity(activityIntent, 0);
String defaultViewHandlerPackageName = null;
if (defaultViewHandlerInfo != null) {
defaultViewHandlerPackageName = defaultViewHandlerInfo.activityInfo.packageName;
}
// Get all apps that can handle VIEW intents.
List<ResolveInfo> resolvedActivityList = pm.queryIntentActivities(activityIntent, 0);
List<String> packagesSupportingCustomTabs = new ArrayList<>();
for (ResolveInfo info : resolvedActivityList) {
Intent serviceIntent = new Intent();
serviceIntent.setAction(ACTION_CUSTOM_TABS_CONNECTION);
serviceIntent.setPackage(info.activityInfo.packageName);
if (pm.resolveService(serviceIntent, 0) != null) {
packagesSupportingCustomTabs.add(info.activityInfo.packageName);
}
}
// Now packagesSupportingCustomTabs contains all apps that can handle both VIEW intents
// and service calls.
if (packagesSupportingCustomTabs.isEmpty()) {
sPackageNameToUse = null;
} else if (packagesSupportingCustomTabs.size() == 1) {
sPackageNameToUse = packagesSupportingCustomTabs.get(0);
} else if (!TextUtils.isEmpty(defaultViewHandlerPackageName)
&& !hasSpecializedHandlerIntents(context, activityIntent)
&& packagesSupportingCustomTabs.contains(defaultViewHandlerPackageName)) {
sPackageNameToUse = defaultViewHandlerPackageName;
} else if (packagesSupportingCustomTabs.contains(STABLE_PACKAGE)) {
sPackageNameToUse = STABLE_PACKAGE;
} else if (packagesSupportingCustomTabs.contains(BETA_PACKAGE)) {
sPackageNameToUse = BETA_PACKAGE;
} else if (packagesSupportingCustomTabs.contains(DEV_PACKAGE)) {
sPackageNameToUse = DEV_PACKAGE;
} else if (packagesSupportingCustomTabs.contains(LOCAL_PACKAGE)) {
sPackageNameToUse = LOCAL_PACKAGE;
}
return sPackageNameToUse;
}
示例11: isActivityAvailable
import android.content.pm.PackageManager; //导入方法依赖的package包/类
static boolean isActivityAvailable(Context cxt, Intent intent) {
PackageManager pm = cxt.getPackageManager();
if (pm == null) {
return false;
}
List<ResolveInfo> list = pm.queryIntentActivities(
intent, PackageManager.MATCH_DEFAULT_ONLY);
return list != null && list.size() > 0;
}
示例12: isVoiceAvailable
import android.content.pm.PackageManager; //导入方法依赖的package包/类
private boolean isVoiceAvailable() {
if (isInEditMode()) {
return true;
}
PackageManager pm = getContext().getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
return activities.size() != 0;
}
示例13: getActivity
import android.content.pm.PackageManager; //导入方法依赖的package包/类
private ActivityInfo getActivity(final CallbackContext callbackContext, final Intent shareIntent, final String appPackageName, final String appName) {
final PackageManager pm = webView.getContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
for (final ResolveInfo app : activityList) {
if ((app.activityInfo.packageName).contains(appPackageName)) {
if (appName == null || (app.activityInfo.name).contains(appName)) {
return app.activityInfo;
}
}
}
// no matching app found
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, getShareActivities(activityList)));
return null;
}
示例14: getHomes
import android.content.pm.PackageManager; //导入方法依赖的package包/类
private List<String> getHomes() {
List<String> names = new ArrayList();
PackageManager packageManager = getPackageManager();
Intent intent = new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.HOME");
for (ResolveInfo ri : packageManager.queryIntentActivities(intent, 65536)) {
names.add(ri.activityInfo.packageName);
}
return names;
}
示例15: getData
import android.content.pm.PackageManager; //导入方法依赖的package包/类
protected List<Map<String, Object>> getData(String prefix) {
List<Map<String, Object>> myData = new ArrayList<Map<String, Object>>();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(APP_CAGEGORY);
PackageManager pm = getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0);
if (null == list)
return myData;
String[] prefixPath;
String prefixWithSlash = prefix;
if (prefix.equals("")) {
prefixPath = null;
} else {
prefixPath = prefix.split("/");
prefixWithSlash = prefix + "/";
}
int len = list.size();
Map<String, Boolean> entries = new HashMap<String, Boolean>();
for (int i = 0; i < len; i++) {
ResolveInfo info = list.get(i);
CharSequence labelSeq = info.loadLabel(pm);
String label = labelSeq != null
? labelSeq.toString()
: info.activityInfo.name;
Log.w("yjt","labelSeq = "+labelSeq+"; label="+label+" ; prefixPath="+prefixPath+" ; prefixWithSlash="+prefixWithSlash);
if (prefixWithSlash.length() == 0 || label.startsWith(prefixWithSlash)) {
String[] labelPath = label.split("/");
String nextLabel = prefixPath == null ? labelPath[0] : labelPath[prefixPath.length];
if ((prefixPath != null ? prefixPath.length : 0) == labelPath.length - 1) {
addItem(myData, nextLabel, activityIntent(
info.activityInfo.applicationInfo.packageName,
info.activityInfo.name));
} else {
if (entries.get(nextLabel) == null) {
addItem(myData, nextLabel, browseIntent(prefix.equals("") ? nextLabel : prefix + "/" + nextLabel));
entries.put(nextLabel, true);
}
}
}
}
Collections.sort(myData, sDisplayNameComparator);
return myData;
}