Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TouchWiz发射器检测_Java_Android_Live Wallpaper_Android Launcher_Android Package Managers - Fatal编程技术网

Java TouchWiz发射器检测

Java TouchWiz发射器检测,java,android,live-wallpaper,android-launcher,android-package-managers,Java,Android,Live Wallpaper,Android Launcher,Android Package Managers,我目前正在Android上制作一张实时壁纸。 事实证明,三星的TouchWiz启动器从未调用onOffsetChanged方法。这里唯一的方法是检测TouchWiz是否正在运行,并相应地模拟滚动。 有没有办法检测my Live Wallper是否在三星TouchWiz launcher下运行?您可以使用以下示例中提供的代码检测是否安装了launcher 第一个 boolean isLauncherInstalled(){ 最后一个字符串myLauncherPackageName=“LAUNCHE

我目前正在Android上制作一张实时壁纸。 事实证明,三星的TouchWiz启动器从未调用
onOffsetChanged
方法。这里唯一的方法是检测TouchWiz是否正在运行,并相应地模拟滚动。
有没有办法检测my Live Wallper是否在三星TouchWiz launcher下运行?

您可以使用以下示例中提供的代码检测是否安装了launcher

第一个
boolean isLauncherInstalled(){
最后一个字符串myLauncherPackageName=“LAUNCHER软件包名称”//com.sec.android.app.LAUNCHER
最终意图过滤器过滤器类别=新意图过滤器(Intent.ACTION\u MAIN);
filter.addCategory(Intent.CATEGORY\u HOME);
列表过滤器=新的ArrayList();
过滤器。添加(过滤器类别);
列表活动=新建ArrayList();
最终PackageManager PackageManager=(PackageManager)getPackageManager();
packageManager.getPreferredActivities(筛选器、活动、空);
for(组件名称活动:活动){
if(myLauncherPackageName.equals(activity.getPackageName())){
return true;//是匹配项,因此安装了启动器。
}
}
返回false;//没有启动器。
}
第二个
public boolean isLauncherInstalled(){
最后一个字符串myLauncherPackageName=“LAUNCHER软件包名称”//com.sec.android.app.LAUNCHER
IntentFilter filterCategory=新的IntentFilter(Intent.ACTION\u MAIN);
filterCategory.addCategory(Intent.CATEGORY\u HOME);
列表过滤器=新的ArrayList();
过滤器。添加(过滤器类别);
List preferredActivities=new ArrayList();
最终PackageManager PackageManager=(PackageManager)getPackageManager();
packageManager.getPreferredActivities(过滤器、preferredActivities、myLauncherPackageName);
if(preferredActivities!=null&&preferredActivities.size()>0){
return true;//是匹配项,因此安装了启动器。
}
返回false;//没有启动器。
}
不过,您最好的选择是始终模拟滚动,因为有更多的启动器不会触发
onoffsetchanged
。但是,当您实际收到对
OnOffsetsChanged
的调用时,只需禁用模拟滚动即可。这种方式
OnOffsetsChanged
可以在可用的情况下正常工作


下面的文章将给你一个如何处理这个问题的想法

您可以使用以下示例中提供的代码检测是否安装了启动器

第一个
boolean isLauncherInstalled(){
最后一个字符串myLauncherPackageName=“LAUNCHER软件包名称”//com.sec.android.app.LAUNCHER
最终意图过滤器过滤器类别=新意图过滤器(Intent.ACTION\u MAIN);
filter.addCategory(Intent.CATEGORY\u HOME);
列表过滤器=新的ArrayList();
过滤器。添加(过滤器类别);
列表活动=新建ArrayList();
最终PackageManager PackageManager=(PackageManager)getPackageManager();
packageManager.getPreferredActivities(筛选器、活动、空);
for(组件名称活动:活动){
if(myLauncherPackageName.equals(activity.getPackageName())){
return true;//是匹配项,因此安装了启动器。
}
}
返回false;//没有启动器。
}
第二个
public boolean isLauncherInstalled(){
最后一个字符串myLauncherPackageName=“LAUNCHER软件包名称”//com.sec.android.app.LAUNCHER
IntentFilter filterCategory=新的IntentFilter(Intent.ACTION\u MAIN);
filterCategory.addCategory(Intent.CATEGORY\u HOME);
列表过滤器=新的ArrayList();
过滤器。添加(过滤器类别);
List preferredActivities=new ArrayList();
最终PackageManager PackageManager=(PackageManager)getPackageManager();
packageManager.getPreferredActivities(过滤器、preferredActivities、myLauncherPackageName);
if(preferredActivities!=null&&preferredActivities.size()>0){
return true;//是匹配项,因此安装了启动器。
}
返回false;//没有启动器。
}
不过,您最好的选择是始终模拟滚动,因为有更多的启动器不会触发
onoffsetchanged
。但是,当您实际收到对
OnOffsetsChanged
的调用时,只需禁用模拟滚动即可。这种方式
OnOffsetsChanged
可以在可用的情况下正常工作


下面的文章将给你一个如何处理这个问题的想法

不要试图检测启动器,因为HTC在某些设备上也会这样做


更好的解决方案是假设您不会得到滚动事件,并始终在开始时进行模拟滚动。然后,如果您接到一个调用
onOffsetChanged
(大多数启动器都会发生这种情况),请禁用模拟滚动并按正常方式进行操作。

不要尝试检测启动器,因为HTC在某些设备上也会这样做


更好的解决方案是假设您不会得到滚动事件,并始终在开始时进行模拟滚动。然后,如果您接到一个调用
onOffsetChanged
(大多数启动器都会发生这种情况),禁用模拟滚动并正常进行。

相关问题:-将浏览器意图替换为主页意图。相关问题:-将浏览器意图替换为主页意图。即使不使用TouchWiz,也不会触发此事件吗?比如说,假设我使用的是Nova,但TouchWiz仍然安装着。即使TouchWiz没有使用,这个不会触发吗?比如说,我正在使用Nova,但TouchWiz仍然安装着。
boolean isLauncherInstalled  () {
    final String myLauncherPackageName = "LAUNCHER PACKAGE NAME"; // com.sec.android.app.launcher

    final IntentFilter filterCategory = new IntentFilter(Intent.ACTION_MAIN);
    filter.addCategory(Intent.CATEGORY_HOME);

    List<IntentFilter> filters = new ArrayList<IntentFilter>();
    filters.add(filterCategory);

    List<ComponentName> activities = new ArrayList<ComponentName>();
    final PackageManager packageManager = (PackageManager) getPackageManager();

    packageManager.getPreferredActivities(filters, activities, null);

    for (ComponentName activity : activities) {
        if (myLauncherPackageName.equals(activity.getPackageName())) {
            return true; // Is a match so you have a Launcher installed. 
        }
    }
    return false; // No Launcher. 
}
public boolean isLauncherInstalled() {
    final String myLauncherPackageName = "LAUNCHER PACKAGE NAME"; // com.sec.android.app.launcher

    IntentFilter filterCategory = new IntentFilter(Intent.ACTION_MAIN);
    filterCategory.addCategory(Intent.CATEGORY_HOME);

    List<IntentFilter> filters = new ArrayList<IntentFilter>();
    filters.add(filterCategory);

    List<ComponentName> preferredActivities = new ArrayList<ComponentName>();
    final PackageManager packageManager = (PackageManager) getPackageManager();

    packageManager.getPreferredActivities(filters, preferredActivities, myLauncherPackageName);

    if (preferredActivities != null && preferredActivities.size()> 0) {
        return true; // Is a match so you have a Launcher installed.
    }
    return false; // No Launcher. 
}