Android. Программирование для профессионалов. 4-е издание



Download 21,53 Mb.
Pdf ko'rish
bet249/485
Sana13.07.2022
Hajmi21,53 Mb.
#787165
1   ...   245   246   247   248   249   250   251   252   ...   485
Bog'liq
Android Programmirovanie dlya professionalov 4-e izdanie 2020 Fillips Styuart Marsikano Gardner


20sp
3dp
name="AppTheme"
parent="
Theme.AppCompat.Light.DarkActionBar
">
name="colorPrimary">@color/colorPrimary
name="colorPrimaryDark">@color/colorPrimaryDark

name="colorAccent">@color/colorAccent
 
 
 
 
 
 
 
 
photoButton 
=
view.findViewById(R.id.crime_camera) 
as
ImageButton
 
 
 
 
 
 
 
 
photoView 
=
view.findViewById(R.id.crime_photo) 
as
ImageView
return view
}
...
}
На этом ненадолго оставим пользовательский интерфейс
(через несколько страниц будет дано объяснение, как эти
кнопки подключить к логике приложения).
Хранилище файлов
Одного лишь места на экране вашим фотографиям
недостаточно. Полноразмерная фотография слишком велика


для хранения в базе данных SQLite, не говоря уже об интенте.
Ей необходимо место для хранения в файловой системе
устройства.
Обычно такие данные размещаются в закрытом
(приватном) хранилище. Вспомните, что именно в закрытой
области хранится наша база данных SQLite. Такие функции, как
Context.getFileStreamPath(String)
и
Context.getFilesDir()
, позволяют хранить в этой же
области и обычные файлы (в папке по соседству с папкой
databases
, в которой размещается база данных SQLite).
Основные функции для работы с внешними файлами и
каталогами в классе 
Context
:
getFilesDir():File
возвращает дескриптор каталога для приватных файлов
приложения.
openFileInput(name:String):FileInputStream
открывает существующий файл для ввода (относительно
каталога файлов).
openFileOutput(name:String,mode:Int):FileOutputS
tream
открывает существующий файл для вывода, возможно,
создает его (относительно каталога файлов).
getDir(name:String,mode:Int):File
получает (и, возможно, создает) подкаталог в каталоге
файлов.
fileList(...):Array
получает список имен файлов в главном каталоге файлов
(например, для использования с 
openFileInput(String)
).
getCacheDir():File


возвращает дескриптор каталога, используемого для
хранения кэш-файлов. Будьте внимательны, поддерживайте
порядок в этом каталоге и старайтесь использовать как
можно меньше пространства.
Тут есть подвох. Поскольку эти файлы объявлены
приватными, взаимодействовать с ними может только ваше
собственное приложение. Если доступ к этим файлам не
понадобится другому приложению, можно обойтись и этими
функциями.
Но их окажется недостаточно, если какому-то другому
приложению потребуется выполнить запись в ваши файлы. Это
как раз случай CriminalIntent, потому что приложению камеры
нужно будет сохранить файл снимка в вашем приложении.
С другой стороны, если запись в файлы должна
осуществляться другим приложением, вам не повезло: хотя
существует флаг 
Context.MODE_WORLD_READABLE
, который
можно передать при вызове 
openFileOutput(String,int)
,
он официально считается устаревшим, а на новых устройствах
его надежность не гарантирована. Когда-то существовала
возможность передачи файлов в общедоступное внешнее
хранилище, но в последних версиях она была заблокирована по
соображениям безопасности.
Если вы сохраняете файлы, которые должны использоваться
другими приложениями, или получаете файлы от других
приложений (как, например, сохраненные фотографии), к
файлам 
необходимо 
организовать 
доступ 
через
ContentProvider

ContentProvider
позволяет открыть
доступ к URI контента другим приложениям. Тогда эти
приложения смогут загружать или записывать данные по этим
URI. В любом случае ситуация находится под вашим контролем,
и вы всегда можете запретить чтение или запись по своему
желанию.



Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   245   246   247   248   249   250   251   252   ...   485




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish