#android #android-manifest #android-camera #android-permissions
#Android #android-манифест #android-камера #android-разрешения
Вопрос:
Я довольно смущен, куда добавить
использует-функцию
тег в манифесте. Я использую камеру в своем приложении. Я добавил разрешение, но я не понимаю, куда добавлять функции, чтобы использовать фронтальную камеру. Вы можете помочь?
Ответ №1:
Добавьте это под <manifest>
тегом, вот так:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lalllala">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature android:name="android.hardware.camera" />
<application android:icon="@drawable/icon" android:label="lalla" android:debuggable="true">
</application>
</manifest>
Комментарии:
1. 1 Если бы вы также добавили
<uses-feature...>
пример, это было бы еще лучше 🙂
Ответ №2:
<uses-feature>
— Объявляет единственную аппаратную или программную функцию, которая используется приложением.
Целью объявления является информирование любого внешнего объекта о наборе аппаратных и программных функций, от которых зависит ваше приложение. Элемент предлагает обязательный атрибут, который позволяет указать, требуется ли вашему приложению и не может ли оно функционировать без объявленной функции, или же оно предпочитает иметь эту функцию, но может функционировать без нее. Поскольку поддержка функций может различаться на разных устройствах Android, элемент играет важную роль, позволяя приложению описывать функции, зависящие от устройства, которые оно использует. читайте подробнее
Ниже приведен пример кода для доступа Device Front Camera
public Camera openFrontFacingCamera() {
int cameraCount = 0;
Camera ffCam = null;
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
// Find the total number of cameras available
cameraCount = Camera.getNumberOfCameras();
// Find the ID of the CAMERA_FACING_FRONT amp; open it
for (int camIdx = 0; camIdx < cameraCount; camIdx ) {
Camera.getCameraInfo(camIdx, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
try {
ffCam = Camera.open(camIdx);
} catch (RuntimeException e) {
Log.e(TAG, "Camera failed to open: " e.getLocalizedMessage());
}
}
}
return ffCam;
}
Нужны следующие разрешения
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
Для получения дополнительной информации, пожалуйста, прочитайте Google android developer API doc
Camera, Camera.CameraInfo
Комментарии:
1. Вы скопировали и опубликовали это с сайта разработчика и не приложили никаких усилий, чтобы фактически ответить на вопрос OP. Сбой
2. да, вы правы, я сделал это, потому что это лучшее объяснение
why to use <uses-feature> tag in manifest by Google 'android_developer' site
. и я скопировал текст сюда, чтобы просто получить краткое объяснение, и если кто-то хочет прочитать больше, нажмите на ссылку на его страницу.3. Разве мы не можем просто сказать <uses-feature android:name=»android.разрешение. КАМЕРА» android: требуется=»false» />?
4.
<uses-feature>
Единственной целью является информирование любого внешнего объекта о наборе аппаратных и программных функций, от которых зависит ваше приложение. Короче говоря, мы можем сказать, что элемент uses-feature описывает функции, изменяемые устройством, которые использует ваше приложение. где как,<uses-permission>
Запрашивает разрешение, которое должно быть предоставлено приложению для его корректной работы. Разрешения предоставляются пользователем при установке приложения. Не разрешено объединять эти два.
Ответ №3:
Добавьте это в тег manifest:
<!-- Request the camera permission -->
<uses-permission
android:name="android.permission.CAMERA" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
Ответ №4:
напишите теги в таком порядке
<manifest>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application>
</application>
</manifest>
Комментарии:
1. просто измените порядок тегов подобным образом и просто загляните в XML-файл androidmanifest dtd или xsd