PackageManager pManager = MessageSendActivity.this.getPackageManager();
/*********************查询手机内所有支持分享的应用*********************/
List<ResolveInfo> resolveList = Utils.getShareApps(MessageSendActivity.this);
for(int i=0;i<resolveList.size();i++) {
ResolveInfo resolve = resolveList.get(i);
ShareItemInfo shareItem = new ShareItemInfo();
//set Icon
shareItem.setIcon(resolve.loadIcon(pManager));
//set Application Name
shareItem.setLabel(resolve.loadLabel(pManager).toString());
//set Package Name
shareItem.setPackageName(resolve.activityInfo.packageName);
}
分享到:
相关推荐
在Android系统中,ResolveInfo类是用于处理Intent解析结果的重要组件,它包含了关于Intent可以启动的各种Activity或Service的信息。ResolveInfo类的一个关键特性是其显示名称,即用户在界面上看到的名称。在开发过程...
本篇将详细讲解`PackageManager`中的`ApplicationInfo`、`PackageInfo`、`ResolveInfo`和`ActivityInfo`这四个关键类,并结合具体实例来阐述它们的作用和用法。 `ApplicationInfo`是描述一个应用全局信息的类,包含...
ResolveInfo> res context getPackageManager queryIntentActivities intent PackageManager GET ACTIVITIES ; if res null { for int i 0; i < res size ; i++ { ResolveInfo r res get i ; ...
for (ResolveInfo resolveInfo : resolveInfos) { String packageName = resolveInfo.activityInfo.packageName; String appName = resolveInfo.loadLabel(packageManager).toString(); Drawable appIcon = ...
`queryIntentActivities()`会返回一个`List<ResolveInfo>`对象,每个`ResolveInfo`代表一个应用程序的活动(Activity)信息。代码如下: ```java PackageManager packageManager = getApplicationContext()....
List<ResolveInfo> apps = packageManager.queryIntentActivities(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER), 0); return apps; } } ``` `queryIntentActivities`方法返回一个`...
List<ResolveInfo> appsList = getPackageManager().queryIntentActivities(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER), 0); Collections.sort(appsList, new ResolveInfo....
`queryIntentActivities()`方法会返回一个`List<ResolveInfo>`,包含所有匹配的Activity信息: ```java PackageManager pm = getPackageManager(); List<ResolveInfo> shareApps = pm.queryIntentActivities...
4. **ResolveInfo**: `ResolveInfo`是`PackageManager`返回的一个结果类,包含了关于解析到的组件(在这里是活动)的详细信息,如其元数据、权限等。 5. **ArrayList<AppModel>`**: `AppModel`是一个自定义类,用于...
PackageManager 通过 parse 每个 application 的 AndroidManifest.xml 来获得所有的 Activity 信息,针对每个 Intent 提供的信息,PackageManager 会提供给 AMS 一个 ResolveInfo 对象。 在 startActivityMayWait()...
为了展示这些应用供用户选择,我们可以创建一个`AlertDialog`或者自定义对话框,将`ResolveInfo`列表转换为用户友好的应用名。点击每个应用时,启动对应的`Intent`。 ```java ArrayList<String> appNames = new ...
public function resolve($root, $args, $context, ResolveInfo $resolveInfo) { // 获取数据并返回 } } ``` 最后,你需要在 GraphQL schema 中注册你的查询和突变,以便它们可以在 API 中使用。在 `app/...
public function resolve($root, $args, $context, ResolveInfo $resolveInfo) { return User::query(); } } ``` 这个查询类定义了返回类型为 `User` 类型的列表,并在 `resolve` 方法中返回 Eloquent 查询构建...
这个方法首先创建了一个`Intent`,指定了分享的动作和数据类型,然后通过`queryIntentActivities`方法查询了能够响应此`Intent`的所有活动,并返回它们的`ResolveInfo`列表。 #### 5. 总结 通过上述步骤,我们可以...
public function resolve($root, array $args, GraphQLContext $context, ResolveInfo $resolveInfo) { return User::all(); // 返回所有用户数据 } ``` ### 中间件与权限控制 在 Laravel 中,可以使用现有的认证...
List<ResolveInfo> resolveInfos = getPackageManager().queryIntentActivities(intent, 0); ``` 3. **构建分享列表**: 遍历`resolveInfos`,为每个应用创建一个列表项,包括应用的图标、名称等信息。这些信息可以...
Collections.sort(m_infos, new ResolveInfo.DisplayNameComparator(m_packageMgr)); Message message = new Message(); message.what = FINISH_GET_APPS; handler.sendMessage(message); } private void ...
List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); for (ResolveInfo info : resolveInfos) { if ("com.example.mybrowser".equals(info.activityInfo....
List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0); for (ResolveInfo info : resolveInfos) { if ("com.example.desired_package".equals(info.activityInfo.packageName)) { // 添加到可选...
源码中,Intent的创建和解析过程涉及Intent类和ResolveInfo类,而启动Activity的过程则涉及ActivityManagerNative和ActivityStackSupervisor。 2. **Activity与Fragment的通信**: Fragment是可嵌入Activity中的UI...