Version: 2021.1
Using Java or Kotlin source files as plug-ins
Troubleshooting Android development

Android mobile scripting

Note: For cross-platform Projects, use the UNITY_ANDROID #define directive to conditionally compile Android-specific C# code. See documentation on Platform dependent compilation to learn more.

Accessing device-specific features and properties

Apps can access most features of an Android device through the Input and Handheld classes. For more information, see:

Vibration support

You can trigger a vibration by calling Handheld.Vibrate. Devices without vibration hardware ignore this call.

Activity indicator

Mobile operating systems have built-in activity indicators your app can use during slow operations. For more information, see Handheld.StartActivityIndicator.

To access device-specific properties, use these scripts:

Script Device property
SystemInfo.deviceUniqueIdentifier Always returns the md5 of ANDROID_ID. For more information, see Android developer documentation on ANDROID_ID.
SystemInfo.deviceName Returns the device name. For Android devices, Unity tries to read device_name and bluetooth_name from secure system settings. If these strings have no values, Unity returns <unknown>.
SystemInfo.deviceModel Returns the device model. This often includes the manufacturer name and model number (for example, “LGE Nexus 5 or ”SAMSUNG-SM-G900A").
SystemInfo.operatingSystem Returns the operating system name and version.

Anti-piracy check

To get licensing information about users and prevent piracy, Google offers a service called Google Play Application Licensing. See the Google Play Application License Verification example plug-in on the Asset Store for an example of how you can integrate this functionality into your Unity application. You can also download the plug-in source code from its GitHub repository.

Screen orientation

You can control the screen orientation of your application on both iOS and Android devices. Detecting a change in orientation or forcing a specific orientation is useful for creating game behaviors that depend on how the user is holding the device.

Retrieve device orientation by accessing the Screen.orientation property. Orientation can be one of the following:

Идентификация Behavior
Portrait Устройство в портретном режиме, удерживающееся в вертикальном положении. Кнопка “домой” расположена снизу.
PortraitUpsideDown Устройство в портретном режиме, но “вверх ногами”, удерживающееся в вертикальном положении. Кнопка “домой” расположена сверху.
LandscapeLeft Устройство в ландшафтном режиме, удерживающееся в вертикальном положении. Кнопка “домой” расположена справа.
LandscapeRight Устройство в ландшафтном режиме, удерживающееся в вертикальном положении. Кнопка “домой” расположена слева.

Set Screen.orientation to one of the above orientations, or use ScreenOrientation.AutoRotation to control the screen orientation. When you enable auto-rotation, you can still disable some orientation on a case-by-case basis.

Use these scripts to control autorotation:

Using Java or Kotlin source files as plug-ins
Troubleshooting Android development