我正在制作自定义共享对话框。所以,我想列出可以进行SEND操作的设备中的所有应用程序。示例代码:
{% if company_list %}
<h1>Please select your company</h1>
<ul>
{% for company in company_list %}
<li>{{company.name}}</li>
</ul>
{% endfor %}
<button type="button" class="btn btn-info" href="{% url 'nodisoapp:createcompany' %}">Create New Company</button>
<a href="{% url 'nodisoapp:createcompany' %}">create</a>
{% else %}
<h1>You have no companies</h1>
<a href="{% url 'nodisoapp:createcompany' %}">create</a>
<button type="button" class="btn btn-info" href="{% url 'nodisoapp:createcompany' %}">Create A Company</button>
{% endif %}
我可以轻松地从ResolveInfo的activity标签中获取标签,但是我无法找到以编程方式从intent-filter获取标签的方法。那么,让我们知道有没有办法从manifest-filter中获取标签的各个活动的标签?
答案 0 :(得分:0)
你错了。 ResolveInfo
为您提供<intent-filter>
图标和标签。 ActivityInfo
来自<activity>
代码。
答案 1 :(得分:0)
这是一个快速的代码示例,它是完成此操作的,我在阅读您的问题和@j__m的答案以及其他一些资源后编写了该代码:
Intent i2 = new Intent(Intent.ACTION_PROCESS_TEXT);
i2.setType("text/plain");
PackageManager manager = getPackageManager();
List<ResolveInfo> infos = manager.queryIntentActivities(i2,
PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo info : infos) {
try {
Log.d("TEST", "Package name: ", info.activityInfo.applicationInfo.packageName);
Resources res = manager.getResourcesForApplication(info.activityInfo.applicationInfo);
int labelRes = info.labelRes;
if (labelRes == 0)
labelRes = info.activityInfo.labelRes;
Log.d("TEST", " - Title: ", res.getString(labelRes));
} catch (PackageManager.NameNotFoundException ignore) {}
}