Android中是否可以創建BroadcastReceiver來處理從其他應用程序共享的文件?BroadcastReceiver通過ACTION_SEND處理文件?
清單中我寫道:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<receiver android:name=".modules.file.FileReceiver" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<data android:mimeType="application/pdf" />
</intent-filter>
</receiver>
和我FileReceiver文件(科特林):
class FileReceiver : WakefulBroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
context?.startService(Intent(context, FileHandlingIntentService::class.java))
}
}
,但我不能從文件管理器將文件發送到我的應用程序,因爲我的應用程序不在可以處理文件的應用程序列表中... 是否僅在活動中才能處理文件? 有什麼建議嗎?
是的,我剛剛通過運行IntentService進行文件解析和複製並僅發送實際文件路徑以實現目標活動。 p.s .: send和send_multiple類別可以保留在一個intent-filter標籤中) –