1

アプリを使用してテキストファイルを開くために、以下のインテントフィルターを作成しました。それはうまくいくようですが、たまにしかありません。たとえば、テキストファイルをメールで送信する場合、メールから開くを選択すると、アプリが表示されません。最初に保存を選択してから開くと、アプリが表示されます。ドロップボックスでの同様の経験。ドロップボックスから開こうとすると、アプリは開くことができると表示されませんが、ドロップボックスからsdにエクスポートし、ファイルマネージャーを使用して開くと、アプリが表示され、動作します。

<intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
  </intent-filter>  
  <intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="http" android:host="*" android:pathPattern=".*\\.txt" />
      <data android:scheme="https" android:host="*" android:pathPattern=".*\\.txt" />
      <!--  <data android:scheme="content" android:host="*" android:pathPattern=".*\\.txt" /> -->
  <data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\.txt" />
   </intent-filter>
4

2 に答える 2

1

DropboxとEメールアプリはおそらくコンテンツプロバイダーを使用しており、とは一致しませんpathPattern。通常、コンテンツプロバイダーにはファイル拡張子は含まれていませんが、mimeタイプを使用して、開かれているファイルのタイプを示します。text/plain拡張子が付いているファイルだけでなく、任意のファイルを開く場合は、完全に.txtオフのままにしておくことをお勧めします。pathPattern

<intent-filter>
      <data android:mimeType="text/plain" />
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
于 2012-08-30T13:15:23.067 に答える
0

おそらく、メールアプリとドロップボックスがファイル、http、またはhttpsの代わりに別のスキームを使用しているためです。mimetype属性のみを使用してみてください。

編集:ドロップボックスフォーラムによると:

参考までに、これを行う最も簡単な方法は、正しいmimeタイプでVIEWに登録して、Dropboxからアプリを開くことです。その後、すべてが適切に渡され、再アップロードするためのファイル変更の保存と監視が適切に処理されます。

mimeタイプを指定するだけで、他には何も指定できません。私はこれを試していませんが、mimeタイプが一致する限り、おそらくこれはメールアプリでも機能します。

興味のある方はこちらのリンクをご覧ください。

https://forums.dropbox.com/topic.php?id=26035#post-162963

于 2012-08-30T13:00:23.257 に答える