当前位置: 首页 > 编程日记 > 正文

Android -- queryIntentActivities


某些时候你想要知道某个APP是否有注册了一个明确的intent,比如说你想要检查某个receiver是否存在,然后根据是否存在来这个receiver来在你的AP里面enable某些功能。我们可以通过PackageManager来check它。

code

复制代码
public boolean isIntentAvailable(Context context, String action) {  final PackageManager packageManager = context.getPackageManager();  final Intent intent = new Intent(action);  List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);  if (resolveInfo.size() > 0) {  return true;  }  return false;  
}
复制代码

干货

一般APP的manifest里面要设置为launcher的activity总是要设置intent-filter:

<intent-filter>  <action android:name="android.intent.action.MAIN" />  <category android:name="android.intent.category.LAUNCHER" />  
</intent-filter>

可以通过queryIntentActivities来获得有哪些launcher:

private void loadApps() {           Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);           mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);             mApps = getPackageManager().queryIntentActivities(mainIntent, 0);       }

我们可以在自己的app上用一个gridview显示出当前手机有哪些app:

复制代码
import java.util.List;       
import android.app.Activity;   
import android.content.Intent;   
import android.content.pm.ResolveInfo;   
import android.os.Bundle;   
import android.view.View;   
import android.view.ViewGroup;   
import android.widget.BaseAdapter;   
import android.widget.GridView;   
import android.widget.ImageView;       
public class MyHome extends Activity   
{         GridView mGrid;             @Override    public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);                     loadApps();           setContentView(R.layout.main);           mGrid = (GridView) findViewById(R.id.apps_list);           mGrid.setAdapter(new AppsAdapter());       }        private List<ResolveInfo> mApps;  private void loadApps() {           Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);           mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);              mApps = getPackageManager().queryIntentActivities(mainIntent, 0);      }    public class AppsAdapter extends BaseAdapter   {           public AppsAdapter() {         }               public View getView(int position, View convertView, ViewGroup parent) {               ImageView i;                   if (convertView == null) {                   i = new ImageView(MyHome.this);                   i.setScaleType(ImageView.ScaleType.FIT_CENTER);                   i.setLayoutParams(new GridView.LayoutParams(50, 50));               } else {                   i = (ImageView) convertView;               }                   ResolveInfo info = mApps.get(position);              i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));                   return i;           }                   public final int getCount() {              return mApps.size();           }               public final Object getItem(int position) {               return mApps.get(position);           }               public final long getItemId(int position) {               return position;           }       }   
}
复制代码

可以设置点击监听器去开启app:

复制代码
@Override 
public void onItemClick(AdapterView<?> parent, View view, int position,long id) {            ResolveInfo info = mApps.get(position);                          //该应用的包名            String pkg = info.activityInfo.packageName;               //应用的主activity类            String cls = info.activityInfo.name;                           ComponentName componet = new ComponentName(pkg, cls);                          Intent i = new Intent();              i.setComponent(componet);              startActivity(i);          
}
复制代码

我是天王盖地虎的分割线




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/4287077.html,如需转载请自行联系原作者

相关文章:

吉大c语言程序设计作业一,吉林大学历年C语言程序设计试题及答案.doc

吉林大学历年C语言程序设计试题及答案吉林大学历年C语言程序设计试题及答案(5)END2000年试题答案一、(1)解题思想&#xff1a; 用5个数 a,b,c,d,e,来回替换&#xff0c;最终f(n)算出。设计程序如下&#xff1a;int F(int n){ if(n <5) return n ;int temp,a1;b2;c3;d4;e5;fo…

忍不住心中的激动

天天上自行车旅行网&#xff0c;看到别人的出行游记&#xff0c;心里很羡慕&#xff0c;也很冲动&#xff0c;想想还有1个多月就可以出发了&#xff0c;不知道能坚持到哪里&#xff0c;恒心是有的&#xff0c;可身体就不知道&#xff0c;不过这次时间可以不用那么紧&#xff0c…

程序员入错行怎么办?

程序员应该选择什么技术领域才能获得最高的回报&#xff1f;本文详细解读了 2018 年最热门的五大领域&#xff0c;对行业现状、薪资概况及具体的技能要求给出了深入的分析&#xff0c;希望给担心“入错行”的你提供些指导。七天国庆黄金周转眼就过&#xff0c;退散的除了出游热…

关于局域网共享访问问题总结

Windows网上邻居互访的基本条件&#xff1a;  1) 双方计算机打开&#xff0c;且设置了网络共享资源&#xff1b;  2) 双方的计算机添加了 "Microsoft 网络文件和打印共享" 服务&#xff1b;  3) 双方都正确设置了网内IP地址&#xff0c;且必须在一个网段中&…

Linq初级班 Linq To XML体验(基础篇)

LINQ To XML体验(基础) 这两天开始学习LINQ to XML的知识,我会继续把自己的感想和示例发布给初学者们学习的,一样欢迎高手们多多指点,请勿使用过激语言,针锋相对,我是个初学者,自知还有许多不足的地方,还请高手们多多耐心指导,好了,下面就开始我们的LINQ to XML旅程吧,在此之前…

c语言字符串机考题,2016全国计算机二级《C语言》机考试题及答案

2016全国计算机二级《C语言》机考试题及答案一、程序填空题(共18分)下列给定程序中&#xff0c;函数fun的功能是&#xff1a;求ss所指字符串数组中长度最短的字符串所在的行下标&#xff0c;作为函数值返回&#xff0c;并把其串长放在形参n所指的变量中。ss所指字符串数组中共有…

如何快速优化机器学习的模型参数

作者 | Thomas Ciha译者 | 刘旭坤编辑 | Jane出品 | AI科技大本营【导读】一般来说机器学习模型的优化没什么捷径可循。用什么架构&#xff0c;选择什么优化算法和参数既取决于我们对数据集的理解&#xff0c;也要不断地试错和修正。所以快速构建和测试模型的能力对于项目的推进…

2004-10-26+ 用户输入的安全问题

最近在看一本叫《asp.net安全性高级编程》&#xff0c;把一些感兴趣的东西写成笔记当到这里吧&#xff0c;今天这一篇主要是讲怎么防御注入攻击的。script injection 1.验证内容a.使用regularexpressionvalidator的正则表达式来限制用户输入2.筛选用户输入a.使用string.replace…

在C语言中break语句称为,在C语言中,break语句的功能是退出函数

摘要&#xff1a;燃烧煤中质在中过程所含矿物&#xff0c;语言k语高温和氧化后分解&#xff0c;称为&#xff0c;体残的固留物生成。出函只装锅炉机时称(引风。语言k语锅炉规格都以其公取的常用称压一般为选力和来作阀门上的。...燃烧煤中质在中过程所含矿物&#xff0c;语言k语…

C语言算法6-15

2019独角兽企业重金招聘Python工程师标准>>> 【程序6】 题目&#xff1a;用*号输出字母C的图案。 1.程序分析&#xff1a;可先用*号在纸上写出字母C&#xff0c;再分行输出。 2.程序源代码&#xff1a; #include "stdio.h" main() { printf("Hello C…

二维数组c语言矩阵加法,C 语言实例 – 两个矩阵相加 - C 语言基础教程

C 语言实例使用多维数组将两个矩阵相加。#include int main(){int r, c, a[100][100], b[100][100], sum[100][100], i, j;printf("输入行数 ( 1 ~ 100): ");scanf("%d", &r);printf("输入列数 ( 1 ~ 100): ");scanf("%d", &c…

自动生成HTML的一段程序

<%ifSaveFile("list.htm","http://192.168.1.4:920/lcy.asp") thenResponse.write "已生成"elseResponse.write "没有生成"endiffunctionSaveFile(LocalFileName,RemoteFileUrl) DimAds, Retrieval, GetRemoteData OnErrorRe…

【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

【JAVA零基础入门系列】&#xff08;已完结&#xff09;导航目录 Day1 开发环境搭建Day2 Java集成开发环境IDEADay3 Java基本数据类型Day4 变量与常量Day5 Java中的运算符Day6 Java字符串Day7 Java输入与输出Day8 Java的控制流程Day9 Java中的那个大数值Day10 Java中的数组Day1…

只讲技术,拒绝空谈!2018 AI开发者大会精彩议程曝光

2018 年 11 月 8-9 日&#xff0c;由中国 IT 社区 CSDN 与硅谷 AI 社区 AICamp 联合出品的 2018 AI 开发者大会&#xff08;AI NEXTCon&#xff09;将于北京盛大召开。届时&#xff0c;近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者将齐聚于此&#xff0c;展开全方位技…

经典的Java基础面试题集锦

问题&#xff1a;如果main方法被声明为private会怎样&#xff1f; 答案&#xff1a;能正常编译&#xff0c;但运行的时候会提示”main方法不是public的”。 问题&#xff1a;Java里的传引用和传值的区别是什么&#xff1f; 答案&#xff1a;传引用是指传递的是地址而不是值本身…

c语言组队,组队列问题。会做的高手帮帮忙啊

算法实验题4.10 组队列问题 问题描述&#xff1a;组队列是一个特殊的抽象数据类型&#xff0c;它所支持的运算类似于队列运算具有附加的组属性。因此入队运算 Enqueue(x)与通常定义的运算不eue(x)运算将元素x加入当前队列中与元素x 属于同一组的元素的尾有与x属于同一组的元素&…

算力超英伟达?华为推出两款“昇腾”芯片;五大AI战略正式公布

整理 | 非主流、费棋 出品 | AI科技大本营 华为也像是要 All in AI 了。 10 月 10 日&#xff0c;华为全联接大会 2018 上&#xff0c;华为轮值董事长徐直军带来了一系列的硬核 AI。在大会上&#xff0c;他系统公布了华为的 AI 发展战略&#xff0c;以及全栈全场景 AI 解决方案…

《SharePoint Portal Server 2003 深入指南》出版预告

《SharePoint Portal Server 2003 深入指南》在8月底、9月初应该就会上市了&#xff0c;如果您想得到这本书&#xff0c;方法包括&#xff1a; 1、等到书店到货之后&#xff0c;在书店购买。 2、网上订购。比如在Dearbook上&#xff1a;http://www.dearbook.com.cn/book/110838…

python内置数据结构之dict

字典是什么 key-value对的集合.可变的、无序、key不重复的序列.key只能是唯一标识,value不限定,只要是合法的value.key和value一一对应.字典的定义初始化空字典定义 dict() 和 {}例;d dict() 或 d {}字典定义初始化- 1dict(**kwargs) 使用namevalue的格式,定义字典例:…

Google发布三大新品,Pixel手机价格直逼苹果

整理 | 费棋出品 | AI科技大本营北京时间 10 月 9 日晚间&#xff0c;Google 在秋季发布会上推出了 Pixel 手机、平板电脑 Pixel Slate 以及智能音箱 Home Hub三大新品。最新旗舰手机 Pixel 3 和 Pixel 3 XL 如约而至&#xff0c;但由于产品信息在发布前就已被泄露&#xff0c;…

github上好的c语言项目,2019 github热门项目

zdogzdog是一款js 3D引擎&#xff0c;zdog不同于其他的js 3D引擎的地方在于所有的API引用全部都是2D绘图&#xff0c;所以zdog项目才会简单&#xff0c;但是高效。一起来做马里奥吧&#xff01;craftcraft是Mojang工作室在github上的开源项目&#xff0c;craft完全采用c语言实现…

性能测试注意事项

作者&#xff1a;不详 性能测试注意事项&#xff1a; 1&#xff0e;服务器端和客户端一定要同一个局域网内&#xff0c;否则网络因素会成为性能测试的瓶颈。 2&#xff0e;在性能测试脚本中要注意检查点的设置&#xff0c;否则都不清楚脚本是否真的成功执行操作。 3&#xff0e…

【笔记】PIL 中的 Image 模块

Image 模块提供了一个同名类&#xff08;Image&#xff09;&#xff0c;也提供了一些工厂函数&#xff0c;包括从文件中载入图片和创建新图片。例如&#xff0c;以下的脚本先载入一幅图片&#xff0c;将它旋转 45 度角&#xff0c;并显示出来&#xff1a; 1 >>>from P…

c语言万年历的设计报告,万年历设计报告

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#includechar* month_str[]{"January","February","March","April","May","June","July","August","September","Octob…

SQL Server的数据库开发工具

偶然的机会看到这个工具&#xff0c;看来比Oracle的PL/SQL Dev 有过之而无不及呀。而且是免费的哟这个工具看起来确实很牛呀&#xff0c;只是我还没有试用过。SQL Prompt 为Microsoft SQL Server 编辑器提供一种智能感知形式的自动完成功能&#xff0c;当你正在写你自己的SQL命…

国内首个深度学习工程师认证标准发布

10月10日&#xff0c;深度学习工程师认证发布会暨人工智能人才发展论坛在京召开。会上&#xff0c;基于中国软件行业协会发布的国内AI领域第一个专业技术人才培养标准——《深度学习工程师能力评估标准》&#xff08;以下称《标准》&#xff09;&#xff0c;深度学习技术及应用…

对于未来的多种可能,这几位中国科学家想说

注&#xff1a;本文来自“ 2018 AI开发者大会”媒体合作伙伴深科技十年前&#xff0c;人工智能还被叫做模式识别&#xff0c;中本聪也才刚刚提出区块链概念。现如今&#xff0c;人类发现了石墨烯的新制法&#xff0c;利用 CRISPR-Cas9 战胜了过去不可治愈的病症&#xff0c;甚至…

android 虚方法,尝试在空对象引用上调用虚方法’android.view.View android.view.View.getRootView()’...

我收到这个错误,“Attempt to invoke virtual method ‘android.view.Viewandroid.view.View.getRootView()’ on a null object reference”这是我的代码.black.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {View bView findViewBy…

一个男人和一个女人的故事

一个男人和一个女人的故事,开始还有点意思,后来就有想打人的冲动.his_and_her_circumstance, 彼男彼女的事情. 还是一个男人和一个女人的故事简单. 曾经看到过介绍, 夸得天花乱缀. 我就下了,又花了一个星期的耐心终于看完了. 开始看,以为又是搞笑的青春校园故事. 后来越看越没…

Filezilla 二进制上传设定

大部份人都用這套吧&#xff0c;免費而且還不斷更新中。由於有些php源碼是有zend壓縮&#xff0c;沒用二進制傳送&#xff0c;會有問題&#xff0c;所以上傳模式最好是直接設定為二進制&#xff0c;如下圖&#xff1a;另外我建議最好也設定一次只傳一個檔&#xff0c;雖然慢了些…