时间:2021-05-02
本文实例讲述了Android判断现在所处界面是否为home主桌面的方法。分享给大家供大家参考。具体实现方法如下:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /** * 获得属于桌面的应用的应用包名称 * @return 返回包含所有包名的字符串列表 */ private List<String> getHomes() { List<String> names = new ArrayList<String>(); PackageManager packageManager = this.getPackageManager(); //属性 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); for(ResolveInfo ri : resolveInfo){ names.add(ri.activityInfo.packageName); Log.i("zhangyinfu PinyinIME.java", "packageName =" + ri.activityInfo.packageName); } return names; }分析:
1)既然要判断当前界面,那就要判断当前的RunningTasks中的第一个;
2)引入ActivityManager获取RunningTasks;
3)取出RunningTasks中的topActivity的PackageName;
4)最后跟第一步得到的List做比较即可!
5)需添加相关权限
复制代码 代码如下: <uses-permission android:name="android.permission.GET_TASKS" /> ? 1 2 3 4 5 6 7 8 9 10 11 12 13 /** * 判断当前界面是否是桌面 */ public boolean isHome(){ ActivityManager mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> rti = mActivityManager.getRunningTasks(1); List<String> strs = getHomes(); if(strs != null && strs.size() > 0){ return strs.contains(rti.get(0).topActivity.getPackageName()); }else{ return false; } }希望本文所述对大家的Android程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Android添加(创建)、删除及判断是否存在桌面快捷方式的方法。分享给大家供大家参考。具体实现方法如下:/***判断桌面是否已添加快捷方式**@
为公司的银联二维码功能增加一个桌面快捷方式功能的时候,遇到一个头疼的问题,问题如下:测试来回切换app主界面的四个tab,然后点击home键,点击桌面快捷方式,
iphone7home键震动怎么取消?小编用手机不喜欢带震动,现在每次按home键退到主界面,都会震动一下,感觉不好,本文为大家带来苹果7home键取消震动
如下所示:/***判断某个界面是否在前台**@paramcontextContext*@paramclassName界面的类名*@return是否在前台显示*/
方法1(快捷键截屏)同时按电源键+音量减键几秒,即可对手机所处的界面进行截图保存。方法2(三指截屏)ColorOS3.1设置路径:1、通过桌面的设置--手势体感