2015-02-05 2 views
-1

내 파일이 사용자 또는 다른 앱에 의해 삭제되는 것을 방지하고 싶습니다. 이 파일에서 저는 긴 가치와 몇 가지 정보를 저장해야합니다. 나는 그 정보를 저장하기 위해서 SharedPreferencesSQLite 데이터베이스를 사용했다. 그러나 내 응용 프로그램이 제거되거나 데이터가 지워지면 데이터베이스 또는 SharedPreferences도 삭제된다는 사실을 알게되었습니다. 이제는 그 파일에 데이터를 저장하고 어떤 종류의 삭제로부터도 보호 할 생각입니다. 그래서 내 응용 프로그램은 제거 후에도 언제든지 데이터를 복원 할 수 있습니다. 가능한가?안드로이드에서 응용 프로그램을 제거한 후에도 파일이 삭제되지 않도록하려면 어떻게합니까?

+1

제거를 계속하려면 외부 저장소에 데이터를 저장해야하지만 사용자가 삭제하거나 서식을 지정할 수 없습니다. –

+3

일부 영구 라이선스 또는 시험 사용 기간을 적용하려는 것 같습니다. 영구 값을 만들려면 앱의 샌드 박스 외부로 이동해야합니다. 외부 저장소에 대한 액세스가 Android 최신 버전에서 크게 방해되었습니다. 대신에 off-device 값을 추적 할 수 있습니다. – 323go

+1

정보를 서버에 복사하기 만하면됩니다. –

답변

2

여러분이 할 수있는 최선의 방법은 데이터를 Android 파일 시스템에 파일로 저장하는 것입니다. 당신은 당신의 매니페스트에 쓰기 외부 저장 권한을 추가해야합니다 :

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

체크 아웃 여기에 안드로이드 파일 API : 그것은 비교적 간단합니다 http://developer.android.com/reference/java/io/File.html

합니다. 앱을 제거 할 때 삭제되지 않는 어딘가에 파일을 저장하고 싶을 것입니다. SD 카드의 폴더에서도 마찬가지입니다.

그러나 사용자 나 다른 앱 (임의의 파일을 삭제하는 앱의 개수를 알 수는 없지만)이 파일을 수동으로 삭제하지 않는다고 보장 할 수는 없습니다. 실제로 울트라 퍼시스턴스를 보장해야하는 경우 파일을 클라우드 또는 서버에 저장하는 것이 좋습니다.

+0

클라우드 저장소에 대한 자습서를 제공해 줄 수 있습니까? 일부 코드를 보았습니다. 그러나 나는 명확하지 않다. –

+0

이것은 좀 더 복잡하게 될 것이며 여러분이 성취하고자하는 것에 달려 있습니다. 최선의 방법은 어딘가에 사용자와 관련된 어딘가에 서버에 파일을 저장하는 것입니다 (아마도 사용자 계정 또는 장치 ID 일 수 있습니다). 사용자 설정이나 비슷한 것을 복원하려는 경우 장치에 저장하는 것이 필요에 맞아야합니다. 323go가 맞고 "시험 사용 기간"과 같은 것을 만들려고하는 경우 서버를 인증 용으로 사용하는 것이 모든 클라이언트 측에서 수행하는 것보다 훨씬 좋은 해결책입니다. – gcgrant

관련 문제