2016-10-31 41 views
3

Android Studioを更新してAPI 25をサポートし、それをプロジェクトに実装しました。私は私の質問で正解を見つけるために別のリソースを探しますが、運はありません。まず、ActionとNova LauncherでAndroid 6.0.1でアプリをテストすると言う必要があります(ただし、Googleアプリは機能しています)。 だから、私はAndroidManifest.xmlで実装:Androidアプリのショートカットが動作しない

  <meta-data 
      android:name="android.app.shortcuts" 
      android:resource="@xml/shortcuts" /> 

xmlshortcuts.xmlを作成しました - res。私はまだ働いていない、属性でandroid:を削除してみてください

<shortcut 
    android:shortcutId="sc1" 
    android:enabled="true" 
    android:icon="@drawable/ic_kalendar" 
    android:shortcutShortLabel="@string/shortcut_kalendar" 
    android:shortcutLongLabel="@string/shortcut_kalendar_long" 
    android:shortcutDisabledMessage="@string/message_off"> 
    <intent 
     android:action="android.intent.action.MAIN" 
     android:targetClass="com.ips.orto.MainActivity" 
     android:targetPackage="com.ips.orto" /> 
    <intent 
     android:action="android.intent.action.VIEW" 
     android:targetPackage="com.ips.orto" 
     android:targetClass="com.ips.orto.kalendar.Kalendar"/> 
</shortcut> 

<shortcut 
    android:shortcutId="sc2" 
    android:enabled="true" 
    android:icon="@drawable/ic_else" 
    android:shortcutShortLabel="@string/shortcut_else" 
    android:shortcutLongLabel="@string/shortcut_else_long" 
    android:shortcutDisabledMessage="@string/message_off"> 
    <intent 
     android:action="android.intent.action.MAIN" 
     android:targetClass="com.ips.orto.MainActivity" 
     android:targetPackage="com.ips.orto" /> 
    <intent 
     android:action="android.intent.action.VIEW" 
     android:targetPackage="com.ips.orto" 
     android:targetClass="com.ips.orto.else.Something"/> 
</shortcut> 

:そこに、私はこれを入力してください。また、android:exported="true"Activityを追加しており、これはShortcutsにあり、特別なvバケットにはshortcuts.xmlを作成しませんでした。 誰かが私が間違っていることを知っていますか?

+0

私はあなたがそのようなエミュレータを使用するなど、アンドロイド7.1上でテストすることをお勧めします。私はNova Launcher(IIRC、彼らのアプリのショートカットサポートはベータ版です)を試していませんが、現時点ではAction Launcherは間違いなく壊れています。 Pixelと7.1エミュレータで動作するマニフェストアプリのショートカットは、アクションランチャーでは機能しません。 – CommonsWare

答えて

1

私はついに答えを見つけました。キャッチは非常に簡単です。コード:

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

手段はmetaを追加するだけでなく、Mainfestapplication一部ではなく、あなたがThirdActivityへのショートカットを定義した場合、たとえば、あなたがそれに上記のコードを追加します(shortcuts.xmlに定義を作成しているためActivityActivityManifest)。

android:exported="true" 

と行動とノヴァランチャーで、だけでなく、Androidの7.1エミュレータの両方になって、それが動作する後:また、ちょうど選ばれた活動は、この行を必要としています。

+0

これは本当に私を、完璧な解決に役立った。 –

関連する問題