android 判断当前界面是否是桌面

 1    /**
 2      * 获得当前活动APP的包名
 3      *
 4      * @return 返回当前活动界面是不是桌面
 5      */
 6     private boolean isHomeWin()
 7     {
 8         ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
 9         List<RunningTaskInfo> lstRti = mActivityManager.getRunningTasks(1);
10         return getHomes().contains(lstRti.get(0).topActivity.getPackageName());
11     }
12
13
14     /**
15      * 获得属于桌面的应用的应用包名称
16      *
17      * @return 返回包含所有包名的字符串列表
18      */
19     private List<String> getHomes() {
20         List<String> packages = new ArrayList<String>();
21         PackageManager packageManager = this.getPackageManager();
22         Intent intent = new Intent(Intent.ACTION_MAIN);
23         intent.addCategory(Intent.CATEGORY_HOME);
24         List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY);
25         for (ResolveInfo ri : resolveInfo) {
26             packages.add(ri.activityInfo.packageName);
27         }
28         return packages;
29     }

在浮动窗口开发中,经常要用到该判断,如果在桌面的时候才显示浮动窗口。

android 判断当前界面是否是桌面

时间: 2024-11-05 22:00:20

android 判断当前界面是否是桌面的相关文章

Android 推断当前的界面是否是桌面的方法

在开发桌面飘浮控件的时候,须要通过service查看当前是不是桌面,从而控制漂浮窗的显现与消失,以下的代码就是推断是否是桌面的方法 /** * 推断当前界面是否是桌面 */ private boolean isHome() { ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> rti = mActivityM

Android添加快捷方式(Shortcut)到手机桌面

Android添加快捷方式(Short)到手机桌面 权限 要在手机桌面上添加快捷方式,首先需要在manifest中添加权限. <!-- 添加快捷方式 --> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <!-- 移除快捷方式 --> <uses-permission android:name="com.andro

android判断和创建快捷方式(4.03测试通过)

整理了网上的创建方式的代码,对于快捷方式的判断使用系统api获取当前启动器来处理,这样系统定制过或者启动器不一样也没关系 . 一加权限和声明目标activity <!-- 创建快捷方式 --> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> <uses-permission android:name="com.android.l

Android判断当前网络是否可用--示例代码

Android判断当前网络是否可用--示例代码 分类: *07 Android 2011-05-24 13:46 7814人阅读 评论(4) 收藏 举报 网络androiddialogmanagernetworknull 在Android平台上开发基于网络的应用,必然需要去判断当前的网络连接情况.下面的代码,作为例子,详细说明了对于当前网络情况的判断. 先看一个自己定义的应用类. public class NetworkDetector {           public static boo

Android的配置界面PreferenceActivity

原文地址:http://www.cnblogs.com/zhangdongzi/archive/2012/01/05/2313519.html 我想大家对于android的系统配置界面应该不会陌生吧,即便陌生,那么下面的界面应该似曾相识吧,假若还是不认识,那么也没有关系,我们这一节主要就是介绍并讲解android 中系统配置界面的使用,相信大家看完本节后,一定能知道怎么使用这些东西了. 从上述界面中(其实是一个界面),我们可以看到有2组元素,第一组为:自动更新,更新频率.第二组为:是否登录,账号

Android——判断Service是否已经启动

延续百度地图定位的Demo,采用Service来进行百度定位,并且将数据上传到服务器上遇到了一个问题:在真机中使用清理内存来关闭程序的之后,Service会被关闭,但是过几秒中,它又会自动重启:重启就算了,而且再次登陆系统的时候,又会开启一个一样的服务,在LogCat中就会看到每次都获取到两次的定位数据.然后想想是否可以在建立Service之前判断这个服务有没有被创建?只要能做这个判断,那么服务存在我们就不管它,如果不存在则创建,本着这个思路,百度发现可行(Service后台服务创建时最好都要判

Android 判断用户2G/3G/4G移动数据网络

在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以在 App 的设置模块里,让用户自己选择,在 2G / 3G / 4G 网络条件下,是否允许请求一些流量比较大的数据. 通过 Android 提供的 TelephonyManager 和 ConnectivityManager 都可以获取到 NetworksInfo 对象,可以通过 getType() 获取类型,判断是 wifi 还是 mobile ,

转:Android 判断用户2G/3G/4G移动数据网络

Android 判断用户2G/3G/4G移动数据网络 在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以在 App 的设置模块里,让用户自己选择,在 2G / 3G / 4G 网络条件下,是否允许请求一些流量比较大的数据. 通过 Android 提供的 TelephonyManager 和 ConnectivityManager 都可以获取到 NetworksInfo 对象,可以通过 getType(

Android判断TextView是否超出加省略号

我们都知道通过指定android:ellipsize="end" android:singleLine="true" 可以让TextView自动截断超出部分并且添加省略号.但是如何判断一个TextView是否被截断了呢? 这个问题在StackOverflow上有人讨论过,不过遗憾的是我测试出Layout layout = mytextview.getLayout();一直是null.后来我发现了更好的办法: 首先自定义一个TextView的子类,声明两个个方法: 1