17

独自のスキームを使用してブラウザからアプリケーションを起動しようとすると問題が発生します。
コードは次のとおりです。
マニフェストファイル:

   <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" 
        android:exported="false">
        <intent-filter>

            <data  android:scheme="allplayer" />

            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

HTMLファイル:

<html>
<head>
</head>
<body>
<a href="allplayer://site.com">Test link</a>
</body>
</html>

リンクをクリックしても、アプリケーションが起動しません。たくさん調べましたが、答えが見つかりませんでした。allplayerhttp
で変更すると、すべて正常に動作します。このリンク から、独自のスキームを使用することはお勧めできないことを学びました。それはあなた自身の計画が機能しないことを意味しますか?ここ の人は彼自身の計画を使用しています、そして彼のフィードバックからそれは働いているようです。 私は何かが足りないのですか?




4

1 に答える 1

31

問題を理解するのに6時間かかりました。どういうわけか、exportedをfalseに設定すると、すべての問題が発生しましたandroid:exported="false"。それをtrueに設定すると、それは魅力のように機能しました。

Exported activity does not require permission警告を避けるために最初にそこに置いたので面白い。これをtrueに戻すと、警告が返されますが、現在は機能しています。

解決策は以下のとおりです。他の人が時間を節約するのに役立つことを願っています。

<activity
      android:name=".MainActivity"
      android:label="@string/title_activity_main" 
      android:exported="true">
      <intent-filter>
          <data  android:scheme="allplayer" />
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.BROWSABLE" />
          <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
  </activity>
于 2012-10-24T07:50:01.810 に答える