我有一个可搜索的应用程序,在Android2.2上工作得很好。我可以通过键入或使用语音搜索进行搜索,我传递给startSearch的包在search results活动的intent extras中可用(在SearchManager.APP_DATA键下)。
然而,当在运行Android 4.0.4的设备上运行相同的应用程序时(我已经尝试了两种不同的设备-一种是HTC,另一种是三星),当使用键盘进行搜索时,捆绑包只会传递给results活动。使用语音搜索时,它会丢失。我已经确认正在创建该包并将其传递给startSearch。在那之后的某一时刻它就消失了。
不管怎么说,这是我的searchable.xml
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"
android:voiceLanguageModel="web_search"
android:voiceLanguage="en">
</searchable>这是我调用startSearch的地方
@Override
public boolean onSearchRequested()
{
Bundle data = new Bundle();
data.putParcelable(URI_EXTRA, getIntent().getParcelableExtra(URI_EXTRA));
data.putString(NAME_EXTRA, getIntent().getStringExtra(NAME_EXTRA));
startSearch(null, false, data, false);
return true;
}在onCreate的search results活动中,我尝试检索包,如下所示,但结果为空:
Bundle data = getIntent().getBundleExtra(SearchManager.APP_DATA);有什么想法可能会导致这个问题,或者知道如何解决这个问题?
发布于 2013-03-13 22:54:08
我相信这个问题已经通过以下提交https://github.com/android/platform_frameworks_base/commit/1bcfe84179417cda57176fe8661a4a749cb843b6在android源码中得到了解决。
https://stackoverflow.com/questions/14904599
复制相似问题