2

アプリにアプリ ショートカットを実装しようとしていますが、機能しません。私のshortcut.xml:

<Shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
    android:shortcutId="shortcut"
    android:enabled="true"
    android:icon="@drawable/ic_shortcut"
    android:shortcutShortLabel="@string/shortcut_label">
    <intent
        android:action="android.intent.action.VIEW"
        android:targetPackage="com.example"
        android:targetClass="com.example.package.Activity"/>
</shortcut>

マニフェスト.xml:

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

<application
    android:name=".Application"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:resizeableActivity="false"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".package.Activity"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>

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

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

だから、私はグーグルの例と同じようにショートカットを行います。ショートカットを表示してクリックできますが、何も起こりません。「exported = true」のように、アクティビティの場所、アクティビティのアクション、パラメータを変更して、さまざまなアクティビティを試しましたが、何も変わりません - ログでのみ確認できます

ActivityNotFoundException: ショートカットを開始できませんでした

私のショートカット ログと Google カメラ ショートカット ログの唯一の違いは、アクティビティへのパスです。

I/ActivityManager: START u0 {act=android.intent.action.VIEW flg=0x1000c000 cmp=com.example/.package.Activity}

I/ActivityManager: START u0 {act=android.media.action.STILL_IMAGE_CAMERA flg=0x1000c000 cmp=com.google.android.GoogleCamera/com.android.camera.activity.CameraImageActivity}

Google cam にはアクティビティへのフル パスがありますが、パッケージ パスは異なります。

PS: 今日 Google サンプルを試してみましたが、静的アプリのショートカットはサンプルでも機能しません。動的アプリのショートカットはうまく機能します。

4

4 に答える 4