2016-03-06 32 views
1

我有我的Android應用程序點擊照片,並在應用程序內訪問它們。這工作正常鎖定應用程序相關圖像從獲取訪問從畫廊

但是,當照片被點擊時,他們可以在畫廊(Android的默認照片查看應用程序)訪問。他們可以查看,編輯,甚至從畫廊刪除。

我希望我的應用程序只對它點擊的照片擁有相應的權利,因爲只要點擊它們就不會將它們上傳到服務器。應用程序等待無線上傳它們。如果文件在我的應用程序外部更新時(尤其是它被刪除時),則會出現數據完整性問題

我確信有一種方法可以實現此目的,因爲Android應用程序中的Facebook應用程序不可用畫廊,除非你明確地保存它們。

問題是如何做到這一點。

+0

您可以更改名稱中圖像的文件類型,默認應用程序無法將其識別爲圖像。像「picture.gggg」,或者你可以將你的圖像保存爲本地sqlite數據庫作爲blob對象,並隨時使用它們。 –

回答

1

您可以在包含圖片的目錄中創建一個空白.nomedia文件。這將拒絕Gallery應用程序掃描該目錄。

但請注意,這是一個速戰速決,如果你想充分保護您的文件,我建議使用getExternalFilesDir()

1

我使用的外部存儲器的專用存儲目錄有我的Android應用程序點擊照片,並在應用程序內訪問它們

你還沒有解釋你是如何做到這一點。

我希望我的應用程序只對它點擊的照片擁有相應的權利,因爲只要點擊它們就不會將它們上傳到服務器。

然後把照片放在internal storage,而不是外部存儲。

如果您使用相機API自己拍攝照片,這只是您寫入圖像數據的問題。

如果您使用的是ACTION_IMAGE_CAPTURE,請在拍攝照片後將照片從外部存儲移動到內部存儲。但請注意,用戶爲處理您的ACTION_IMAGE_CAPTURE請求而選擇的相機應用可能在其他地方有單獨的照片副本,並且該副本可能會被MediaStore獲得。從

鎖定應用程序相關的圖像從畫廊

從你的描述得到訪問,畫廊型應用程序是不是你的問題。 任何應用程序是你的問題。雖然.nomedia類型的解決方案可能適用於保留圖片庫類型的應用程序,但如果照片位於external storage,其他應用程序仍可以訪問它(例如文件管理器)。

0

通過調用Context方法getExternalFilesDir(),可以在外部存儲上使用專用存儲目錄。您可以在Saving files that are app-private上查閱Android文檔。