All Projects → fast0490f → react-native-lock-task

fast0490f / react-native-lock-task

Licence: MIT license
Kiosk Mode for Device Lockdown

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to react-native-lock-task

root-ro
Read-only root filesystem for Raspbian Stretch (using overlay)
Stars: ✭ 75 (+82.93%)
Mutual labels:  kiosk
KioskBoard
KioskBoard - A pure JavaScript library for using virtual keyboards.
Stars: ✭ 114 (+178.05%)
Mutual labels:  kiosk
seb-mac
Safe Exam Browser for macOS and iOS
Stars: ✭ 74 (+80.49%)
Mutual labels:  kiosk
webconverger-addon
How we lock down Firefox
Stars: ✭ 27 (-34.15%)
Mutual labels:  kiosk
descent
Elegant now playing display for Last.fm showing song metadata and local weather.
Stars: ✭ 97 (+136.59%)
Mutual labels:  kiosk
inventory-checkin
Inventory check-in/out manager that supports a tablet kiosk.
Stars: ✭ 16 (-60.98%)
Mutual labels:  kiosk
balena-chromium-kiosk
BalenaOS/BalenaCloud based Kiosk using Chromium on a RaspberryPi
Stars: ✭ 46 (+12.2%)
Mutual labels:  kiosk
Chromecast-Kiosk
A open source software to create a digital signage system with google chromecasts.
Stars: ✭ 81 (+97.56%)
Mutual labels:  kiosk
mok-project
Multilingual Onscreen Keyboard Project
Stars: ✭ 27 (-34.15%)
Mutual labels:  kiosk
react-virtual-keyboard
Use jQuery Virtual Keyboard in react.js
Stars: ✭ 44 (+7.32%)
Mutual labels:  kiosk

react-native-lock-task

Getting started

$ npm install react-native-lock-task --save

Mostly automatic installation

$ react-native link react-native-lock-task

Settings

yourProject/android/app/src/main/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.yourProject">
+   <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
+   <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
+       android:launchMode="singleTask"
+       android:stateNotNeeded="true">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
+               <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

+       <receiver android:name="com.rnlocktask.MyAdmin"
+           android:label="@string/sample_device_admin"
+           android:description="@string/sample_device_admin_description"
+           android:permission="android.permission.BIND_DEVICE_ADMIN">
+           <meta-data android:name="android.app.device_admin"
+               android:resource="@xml/my_admin" />
+           <intent-filter>
+               <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
+           </intent-filter>
+       </receiver>
    </application>
</manifest>

yourProject/android/app/src/main/res/values/strings.xml

<resources>
    <string name="app_name">yourNameApp</string>
+   <string name="sample_device_admin">yourNameApp</string>
+   <string name="sample_device_admin_description">yourNameAppTitle</string>
</resources>

yourProject/android/app/src/main/res/xml/my_admin.xml

+ <device-admin xmlns:android="http://schemas.android.com/apk/res/android">
+     <uses-policies>
+         <limit-password />
+         <watch-login />
+         <reset-password />
+         <force-lock />
+         <wipe-data />
+     </uses-policies>
+ </device-admin>

Reinstall application

  • Start your emulator
  • Install project

Set owner device adb

  • Settings --> Accounts --> Delete All
  • adb shell dpm set-device-owner com.yourProject/com.rnlocktask.MyAdmin

Usage

import RNLockTask from 'react-native-lock-task';

RNLockTask.startLockTask();
RNLockTask.startLockTaskWith(["com.google.android.youtube", "com.sega.sonicdash"]);
RNLockTask.stopLockTask();
RNLockTask.clearDeviceOwnerApp();
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].