在Android应用程序中启用和禁用SEARCH LONG PRESS

时间:2011-10-20 04:14:39

标签: android android-manifest

我希望通过长按搜索按钮打开我的应用程序,但我想添加选项以停用此功能。

我添加到我的shortcutActivity中:

<intent-filter>
    <action android:name="android.intent.action.SEARCH_LONG_PRESS"/>
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

因此,当我长按搜索按钮时,它会被打开,但现在,我必须能够打开此功能。

这不是主要活动,此活动只调用主要活动然后结束()。

我该怎么做?

谢谢。

2 个答案:

答案 0 :(得分:0)

不幸的意图过滤器是静态的

  

intent过滤器是IntentFilter类的一个实例。但是,由于Android系统在启动该组件之前必须了解组件的功能,因此通常不会在Java代码中设置intent过滤器,而是在应用程序的清单文件(AndroidManifest.xml)中将其设置为元素。 (一个例外是通过调用Context.registerReceiver()动态注册的广播接收器的过滤器;它们直接创建为IntentFilter对象。)

这来自IntentFilter Documetation

答案 1 :(得分:0)

实际上,使用PackageManager

可以轻松完成
ComponentName cnShortcutActivity = new ComponentName("my.package", "my.package.ShortcutActivity");
getPackageManager().setComponentEnabledSetting(cnShortcutActivity, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);