Android rom development: GMS xml property Detailed

Known, google play store apk mechanisms exist according to the function used by the filter, this mechanism will control the number of apk displayed on different hardware devices. In the development of the box, not many hardware features, such as: a camera, an acceleration sensor, a compass, a gyroscope, and the like. If not, then add the appropriate attribute in gms in, play store inside the store a lot of apk will not be displayed. In response to these hardware attributes, peculiar to this blog to make some brief introduction. Welcome to the great God pointing, very grateful.

Hardware features

Pointed out that an application uses or requires hardware features, the android: name attribute corresponding values ​​declared (to "android.hardware" at the beginning). Please use a separate element at each statement of hardware capabilities.

Audio hardware features

android.hardware.audio.low_latency
applications using low-delay time of the audio device a duct may be reduced and the hysteresis delay in processing voice input or output.

android.hardware.audio.output
application equipment used audio equipment, audio headphone jack, Bluetooth streaming capability or transmission mechanism similar sound.

android.hardware.audio.pro
applications use high-end audio equipment functionality and performance capabilities.

android.hardware.microphone
application uses the device microphone to record audio.

Bluetooth hardware features

android.hardware.bluetooth
application using the device's Bluetooth function, usually in order to communicate with other Bluetooth-enabled devices.

android.hardware.bluetooth_le
application uses low-power Bluetooth radio device functions.

The camera hardware features

android.hardware.camera
application uses equipment rear camera. Only the front camera of the device does not list this feature, so if your application can communicate face with any camera, use android.hardware.camera.any function.

android.hardware.camera.any
applications wherein the use of a camera device or a user is connected to an external camera device. If your application does not require the camera must be rear-mounted, please use this value to replace android.hardware.camera.

android.hardware.camera.autofocus
application uses the device camera supports auto-focus function.
By using this application implies its function also uses android.hardware.camera function, unless the parent function used when declaring android: required = "false".

android.hardware.camera.capability.manual_post_processing
application uses the device camera supports MANUAL_POST_PROCESSING function.
Your application can replace the camera's automatic white balance function through the function. Use android.colorCorrection.transform, android.colorCorrection.gains and TRANSFORM_MATRIX of android.colorCorrection.mode.

android.hardware.camera.capability.manual_sensor
application uses the device camera supports MANUAL_SENSOR function.
This feature implies support for AE lock (android.control.aeLock), which support allows the camera's exposure time and sensitivity has been fixed at a specific value.

android.hardware.camera.capability.raw
application uses the device camera supports RAW function.
This feature implies that the device can save DNG (raw) file, and the device's camera to provide your application directly related to DNG metadata processing required for these original images.

android.hardware.camera.external
application with a user communication device as an external camera is connected. However, the function does not guarantee the external camera is available for your applications.

android.hardware.camera.flash
application uses the device camera supports flash function.
By using this application implies its function also uses android.hardware.camera function, unless the parent function used when declaring android: required = "false".

android.hardware.camera.front
application using the front camera equipment.
By using this application implies its function also uses android.hardware.camera function, unless the parent function used when declaring android: required = "false".

android.hardware.camera.level.full
application uses equipment provided by at least one camera image capture FULL-level support. Provide FULL support provides fast capture camera, frame by frame control and manual post-processing control.

UI device hardware features

android.hardware.type.automotive
application which is designed to display the UI on a screen within the vehicle group. User hard buttons, a touch, a rotation controller and the mouse interface class interact with the application. Vehicle screen usually appear in the vehicle dashboard or console. These screen size and resolution is usually limited.
Note: Remember, since the user is using this type of application UI while driving, the application must try not to let the driver distraction.

android.hardware.type.television
(deprecated; please use android.software.leanback.)
application is designed to display its UI on the TV. This function "TV" is defined as a typical living room TV experience: displayed on a large screen, the user sitting in the distance, the main input in the form of something similar to the arrow keys, generally do not use a mouse, pointer or touch device.

android.hardware.type.watch
application which is designed to display the UI on the watch. Watch worn on the body (such as the wrist). User interaction with the device at a distance close.

Fingerprint hardware features

android.hardware.fingerprint
biometric hardware application using the fingerprint reading apparatus.

Handle hardware features

android.hardware.gamepad
application game controller input from the capture device itself or a connected handle.

Infrared hardware features

android.hardware.consumerir
application of infrared equipment used (IR) function, usually for IR communications with other consumer devices.

Positioning hardware features

android.hardware.location
application uses one or more functions on the device to determine a location, such as GPS location, network location, or base station position.

android.hardware.location.gps
application uses precise location coordinates (GPS) receiver is obtained from a global positioning system device.
By using this application implies its function also uses android.hardware.location function, unless the parent function used when declaring property android: required = "false".

android.hardware.location.network
application based on a coarse position coordinate network geolocation system support obtained from the device.
By using this application implies its function also uses android.hardware.location function, unless the parent function used when declaring property android: required = "false".

NFC hardware features

android.hardware.nfc
applications using short-range wireless communication device (NFC) function.
android.hardware.nfc.hce
(deprecated.)
the NFC card emulation applications hosted on the use of the device.
OpenGL ES hardware features
android.hardware.opengles.aep
OpenGL ES the Android application installed on the device using the extended package.

Sensor hardware feature

android.hardware.sensor.accelerometer
application using the motion acceleration information read from the meter apparatus to detect the current orientation of the device. For example, the application may use the accelerometer readings to determine when to switch between the longitudinal and the transverse direction.

android.hardware.sensor.ambient_temperature
application using the device outside (ambient) temperature sensor. For example, a weather application may report the indoor or outdoor temperature.

android.hardware.sensor.barometer
application barometer device. For example, a weather application can report air pressure.

android.hardware.sensor.compass
magnetometer using application equipment (compass). For example, the navigation application may face a direction of the current user.

android.hardware.sensor.gyroscope
application gyroscope device detects the rotation and tilt, so as to form a six-axis system. By using the sensor, the application can detect if it more smoothly switch between the longitudinal and the transverse direction.

android.hardware.sensor.hifi_sensors
application equipment using high-fidelity (Hi-Fi) sensor. For example, a game application may be detected with high accuracy mobile users.

android.hardware.sensor.heartrate
application equipment using a heart rate monitor. For example, fitness applications can report the user's heart rate trends over time.

android.hardware.sensor.heartrate.ecg
echocardiography applications using devices (ECG) heart rate sensor. For example, fitness applications can report more detailed information about the user's heart rate.

android.hardware.sensor.light
application uses an optical sensor device. For example, the application may be one of two different display color scheme according to ambient lighting conditions.

android.hardware.sensor.proximity
application uses the proximity sensor device. For example, a telephone application to be held by the user device that detects the screen off when the device close to the body.

android.hardware.sensor.relative_humidity
application uses a relative humidity sensor device. For example, the weather report application and may be calculated using the current dew point and humidity.

android.hardware.sensor.stepcounter
application pedometer use of the device. For example, fitness applications can report how many steps you need to take to achieve the target pedometer every day.

android.hardware.sensor.stepdetector
application uses pacer device. For example, applications can take advantage of fitness interval for each step of the ongoing exercise to infer the user types.

Screen hardware features

android.hardware.screen.landscape
android.hardware.screen.portrait
applications require the use of the device the longitudinal or transverse direction. If your application supports both direction, you do not declare any of the functions.
For example, if your application requires a longitudinal direction, the following statement should function so that only support the longitudinal direction (always or selected by the user) of equipment to run your application:

By default assumed non-directional both orientations are required, so your application can be installed on one or more support devices support both directions. However, if the application of any Activity using the android: screenOrientation attribute request to run in a particular direction, this statement means that your application requires that direction. For example, if you use the "landscape", "reverseLandscape" or "sensorLandscape" statement android: screenOrientation, then your application will only be installed on devices supporting landscape orientation.
As a best practice, you should still use the element to declare the direction required. If you use the android: screenOrientation Activity is declared in a certain direction, but there was no such requirement, by using the elements and add android: disable this requirement required = "false" statement that direction.
In order to achieve backward compatibility, any run Android 3.1 (API level 12) or earlier devices support both transverse and longitudinal directions.

Phone hardware capabilities

android.hardware.telephony
application uses the phone features, such as providing wireless telephone data communication services.

android.hardware.telephony.cdma
application uses code division multiple access (CDMA) wireless telephone system.
By using this application implies its function also uses android.hardware.telephony function, unless the parent function used when declaring android: required = "false".

android.hardware.telephony.gsm
application using Global System for Mobile (GSM) radiotelephone system.
By using this application implies its function also uses android.hardware.telephony function, unless the parent function used when declaring android: required = "false".

Touch-screen hardware features

android.hardware.faketouch
applications using basic touch interaction events, such as clicking and dragging.
Statement is necessary, this feature is only compatible application represents the analog touch screen ( "false touch" interface) or the actual device has a touch screen.
Prosthetic device with a touch interface for the user to provide user input system of the analog portion of the touch panel function. For example, a mouse or a remote control may drive the screen cursor. If your application requires basic-and-click interaction (the case in other words, it uses only the arrow keys of the controller does not work), it should declare the function. Since this is the lowest level of touch interaction, so you can also use this feature to provide a statement on the use of more sophisticated touch interface device.
Note: The application requires android.hardware.touchscreen default. If you want your application to provide equipment for use fake touch interface, you must explicitly declare as follows does not require touch screen:

android.hardware.faketouch.multitouch.distinct
application to distinguish between two or more "finger" touch track on the fake touch interface. This is a superset of android.hardware.faketouch function. Statement is necessary, this feature is only compatible with analog applications represent distinguish touch track two or more fingers or actual device has a touch screen.
Unlike android.hardware.touchscreen.multitouch.distinct defined as differentiated multi-touch, it does not support two-finger gesture support distinguish all multi-touch input device by false touch interface, because the input will be converted into cursor on the screen mobile. That is, such devices on a single finger gesture to move the cursor, two-finger swipe single touch trigger event, and other dual-finger gesture corresponding bis-touch event is triggered.
Providing two fingers touch the touch panel cursor movement device may support this function.

android.hardware.faketouch.multitouch.jazzhand
application distinguish five or more "finger" touch track on the fake touch interface. This is a superset of android.hardware.faketouch function. Statement is necessary, this feature is only compatible with analog applications represent distinguish touch track five or more fingers or actual device has a touch screen.
Unlike android.hardware.touchscreen.multitouch.jazzhand defined distinguish multi-touch, multi-touch with one hand by an input device interface does not support all false touch gesture fingers, because the input will be converted into cursor movement on the screen . In other words, such devices on a single-finger gestures to move the cursor, multi-finger gestures to trigger single touch events, and other multi-finger gestures corresponding multi-finger touch event is triggered.
Providing fingers touch the trackpad cursor movement device may support this function.

android.hardware.touchscreen
application functionality using the touch screen device to achieve more than the basic touch events interactive gestures, such as sliding screen. This is a superset of android.hardware.faketouch function.
By default, your applications require this feature. Therefore, your application is not available for devices using default only provides analog touch screen ( "false touch") of. If you want your application for providing false touch interface devices (even only provide equipment arrow keys controller) use, it must be declared at the time by adding android android.hardware.touchscreen: explicitly declare required = "false" It is not required to provide a touch screen. If your application uses (but does not require) the true touch-screen interface, you should add this statement.
If your application really needs a touch interface (in order to perform more advanced touch gestures like sliding screen), you do not need to declare any touch interface features, as they are required functionality by default. However, it is best to explicitly declare your applications use all the features.
If you need a more sophisticated touch interaction (such as multi-finger gesture), you should declare your application uses advanced touch screen functionality.

android.hardware.touchscreen.multitouch
application equipment using multi-touch two basic functions (e.g., implemented pinch gesture function), but the application does not require separate tracking touch track. This is a superset of android.hardware.touchscreen function.
By using this application implies its function also uses android.hardware.touchscreen function, unless the parent function used when declaring android: required = "false".

android.hardware.touchscreen.multitouch.distinct
applications using advanced multi-touch device to function independently track the trajectory of two or more points. This feature is a superset of android.hardware.touchscreen.multitouch function.
By using this application implies its function also uses android.hardware.touchscreen.multitouch function, unless the parent function used when declaring android: required = "false".

android.hardware.touchscreen.multitouch.jazzhand
applications using advanced multi-touch device to function independently track the trajectory of five or more points. This feature is a superset of android.hardware.touchscreen.multitouch function.
By using this application implies its function also uses android.hardware.touchscreen.multitouch function, unless the parent function used when declaring android: required = "false".

USB hardware features

android.hardware.usb.accessory
application performance as a USB device connected to the USB host.

android.hardware.usb.host
application uses the device connected to the USB accessory. Device acts as a USB host.

Wi-Fi hardware features

android.hardware.wifi
application uses an 802.11 network (Wi-Fi) on the device capabilities.

android.hardware.wifi.direct
application uses Wi-Fi Direct network functions on the device.

Software Features

Pointed out that the use or application requires a software function, please android: name attribute corresponding values ​​declared (to "android.software" at the beginning). Please use a separate element at each statement of software features.

Communications software features

android.software.sip
applications using Session Initiation Protocol (SIP) service. By using SIP, the application can support Internet telephony operations, such as video conferencing and instant messaging.

android.software.sip.voip
application using SIP-based Voice over Internet Protocol (VoIP) services. By using VoIP, Internet telephony application can support real-time operations, such as two-way video conference.
By using this application implies its function also uses android.software.sip function, unless the parent function used when declaring android: required = "false".

android.software.webview
application displays content from the Internet.

Custom input software features

android.software.input_methods
application uses the new input method, the input method is defined by the developer in the InputMethodService.
Device management software features

android.software.backup
application joining process backup and restore logic operations.

android.software.device_admin
application to enforce device specification by the device administrator.

android.software.managed_users
application support and hosting two user profiles.

android.software.securely_removes_users
application can permanently remove users and their associated data.

android.software.verified_boot
application logic verification start Results added processing device, the logic device may be configured to detect whether a change occurred during the restart operation.

Media software features

android.software.midi
applications utilize Musical Instrument Digital Interface (MIDI) protocol or the instrument is connected to output sound.

android.software.print
application adds a command to the printing device displayed document.

android.software.leanback
application presents designed for viewing on a large screen (eg TV) designed UI.

android.software.live_tv
application streaming live TV.

Screen interface software functions

android.software.app_widgets
applications or provide application using widgets, and should only be installed on the device for a user with a home screen application embedded widget or similar position.

android.software.home_screen
application functions alternative apparatus main screen.

android.software.live_wallpaper
applications used or provided with animation wallpaper.

Implied permission functional requirements

Some hardware and software features constants are available to use in the appropriate application API release. For example, android.hardware.bluetooth function is added in Android 2.2 (API level 8), but it refers to the Bluetooth API is in the Android 2.0 (API level 5) added. Therefore, some applications can take advantage of the system before it needs to declare an API already has the ability to use the API.
To prevent these applications inadvertently, Google Play will assume certain rights related to hardware requirements, require low-level hardware features by default. For example, applications that use Bluetooth BLUETOOTH element must request permission - For legacy applications, Google Play assumes that permission notice means that applications require underlying android.hardware.bluetooth function, and filter based on the feature set. Table 2 authority implicit function equivalent to the functional requirements element declaration.
Please note that statements (including the statement of any android: required attribute) always takes precedence in Table 2. The authority implied function. For any of the above privileges, you can use the android element: required = "false" attribute to explicitly declare the implied function to deactivate the filter based on implicit function. For example, to disable any filtering according to CAMERA permission, you need to add the following statement to the manifest file:

Table 2. Equipment implicit permission to use the device hardware.
Write pictures described here

Published 42 original articles · won praise 24 · views 60000 +

Guess you like

Origin blog.csdn.net/u010725171/article/details/82593230