7

我的应用有 minSdk = 21 和 targetSdk = 26

我想设置应用程序快捷方式

我已将<meta-data>标签添加到应用程序启动时启动的第一个活动。

<activity android:name=".SignInActivity"
            android:theme="@style/SubscriptionsTheme.NoActionBar">
            <intent-filter>
                <category android:name="android.intent.category.LAUNCHER" />
                <action android:name="android.intent.action.MAIN"/>
            </intent-filter>
            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/>
        </activity>

然后我创建了xml-v25目录并在其中创建了这个shortcuts.xml文件:

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android" >
    <shortcut
        android:shortcutId="test"
        android:icon="@drawable/plus"
        android:shortcutShortLabel="test"
        android:shortcutLongLabel="long test" >

        <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="com.xxxxx.xxxxx.xxxxx"
            android:targetClass="com.xxxxx.xxxxx.xxxxxx.main" />

    </shortcut>
</shortcuts> 

当我尝试构建应用程序时,出现以下错误:

错误:错误:“长测试”与属性 android:shortcutLongLabel (attr) 引用不兼容。错误:错误:“测试”与属性 android:shortcutShortLabel (attr) 引用不兼容。错误:'long test' 与属性 android:shortcutLongLabel (attr) 引用不兼容。

4

1 回答 1

12

希望这可以帮助。

strings.xml

 <string name="long_shortcut">long test</string>
  <string name="short_shortcut">test</string>

在中使用此字符串的引用Manifest.xml

<shortcut
        android:shortcutId="test"
        android:icon="@drawable/plus"
        android:shortcutShortLabel="@string/short_shortcut"
        android:shortcutLongLabel="@string/long_shortcut" >

在 java 中,您还可以使用 setLongLabel (CharSequence longLabel)and setShortLabel(CharSequence)of来分配它ShortcutInfo.Builder

于 2017-10-09T10:25:30.907 回答