当applicationId与包ID不同时,如何配置可搜索的活动?

时间:2014-12-29 17:46:44

标签: android android-manifest android-search

我已经更改了applicationId,之后我的应用程序中的搜索功能停止了工作。我通过以下方式发起搜索:

activity.onSearchRequested();

AndroidManifest.xml的基本部分:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androzic" >

    <application
        android:name=".Androzic"
        android:icon="@drawable/icon"
        android:label="@string/app_name" >

        <activity
            android:name=".SearchableActivity"
            android:exported="true"
            android:label="@string/search_name"
            android:launchMode="singleTop" >
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>

            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />
        </activity>
    </application>
</manifest>

build.gradle的基本部分:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId "com.androzic.v2"
        minSdkVersion 8
        targetSdkVersion 21
    }
}

如果我的applicationId与包ID不同,如何正确配置搜索?

2 个答案:

答案 0 :(得分:0)

</application>

之前写下来
<meta-data
android:name="android.app.default_searchable"
android:value=".SearchableActivity" />

答案 1 :(得分:0)

如果您指定的applicationId具有除package属性之外的其他值,则可以将完全限定类名设置为元数据元素的android:value,如下所示。

<activity
        android:name="com.androzic.SearchableActivity"
        .../>

<meta-data
    android:name="android.app.default_searchable"
    android:value="com.androzic.SearchableActivity" />