Откройте настройки DevicePolicyManager из реагировать родной - PullRequest
0 голосов
/ 13 октября 2018

Я интегрирую разрешение DevicePolicyManager, чтобы открывать настройки, когда пользователь нажимает кнопку из собственного реагирующего приложения.

Проблема, когда пользователь нажимает на кнопку, я получаю сообщение об ошибке: «Невозможно запустить ADD_DEVICE_ADMIN как новую задачу»

коды:

RNMyFancyLibraryModule.java

 @ReactMethod
       public void lockAppEnable(){
            adminComponent = new ComponentName(mContext, SampleDeviceAdminReceiver.class);


                                       Intent activateDeviceAdmin = new Intent(
                                               DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);

                                       activateDeviceAdmin.putExtra(
                                               DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                                               adminComponent);

                                       activateDeviceAdmin
                                               .putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                                                       "After activating admin, you will be able to block application uninstallation.");

                                        activateDeviceAdmin.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);


                                       mContext.startActivity(activateDeviceAdmin);

       }

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.reactlibrary2">


    <uses-sdk
            android:minSdkVersion="14"
            android:targetSdkVersion="26" />



    <application>



        <receiver
                android:name="com.reactlibrary2.SampleDeviceAdminReceiver"
                android:permission="android.permission.BIND_DEVICE_ADMIN" >

            <meta-data
                    android:name="android.app.device_admin"
                    android:resource="@xml/device_admin" />


            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
        </receiver>

    </application>

</manifest>

deviceAdmin.xml

<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android" >

    <uses-policies>

        <!--
        <limit-password />

        <watch-login />

        <reset-password />

        <force-lock />

        <wipe-data />

        <expire-password />

        <encrypted-storage />

        <disable-camera />

        -->
    </uses-policies>

</device-admin>

Код прекрасно работает, если я запускаю его извне, реагирую на нативное, как на родное приложение для Android

...