• 如何获取系统Home(Launcher)应用判断用户是否处于home界面


    要把我们的应用程序作为home(launcher应用),只需要在AndroidManifest.xml中添加:

    <category android:name="android.intent.category.HOME" />
    <category android:name="android.intent.category.DEFAULT" />

    所以如果要获取系统中的launcher应用,就需要通过queryIntentActivities查询category为"android.intent.category.HOME"的应用,具体代码示例如下:

     1 public List getLanuchPackageName(){
     2         ArrayList arrayList = new ArrayList();
     3         PackageManager pm = this.mContext.getPackageManager(); // 获得PackageManager对象
     4         //把自己的应用程序作为home,即实现按下home键,就会启动改应用程序——launcher。只需要在AndroidManifest.xml中添加:
     5         // <category android:name="android.intent.category.HOME" />
     6         // <category android:name="android.intent.category.DEFAULT" />
     7         Intent intent = new Intent("android.intent.action.MAIN");
     8         intent.addCategory("android.intent.category.HOME");
     9         // 通过查询,获得所有ResolveInfo对象.
    10         List<ResolveInfo> resolveInfos = pm
    11                 .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    12 
    13         try{
    14             for (ResolveInfo reInfo : resolveInfos) {
    15                 String pkgName = reInfo.activityInfo.packageName; // 获得应用程序的包名
    16                 arrayList.add(pkgName);
    17                 Log.d(TAG, "Home package name:" + pkgName);
    18             }
    19         }catch (Exception e){
    20             Log.d(TAG, "getTopPackageName fail");
    21         }
    22         return arrayList;
    23     }

    如果我们需要判断用户是否处于home界面,就可以使用getRunningAppProcesses等方式获取系统top activity所属应用,然后判断这个应用是否是Home(launcher)应用,如果是Home应用,则说明用户正处于home界面。

  • 相关阅读:
    大型网站前端使用图片格式的正确姿势
    移动端开发技术文档
    超详细的Web前端开发规范文档
    try 、catch 、finally 、throw 测试js错误
    ajax大并发问题
    jQuery之Ajax--全局Ajax事件处理器
    如何处理ajax中嵌套一个ajax
    关于for循环里面异步操作的问题
    XMLHttpRequest: 网络错误 0x2f78,…00002f78
    【转载】OGRE中用到的设计模式
  • 原文地址:https://www.cnblogs.com/goodhacker/p/7774689.html
Copyright © 2020-2023  润新知