Android应用程序NativeScript中的Kiosk模式

Android应用程序NativeScript中的Kiosk模式,android,nativescript,angular2-nativescript,kiosk,nativescript-plugin,Android,Nativescript,Angular2 Nativescript,Kiosk,Nativescript Plugin,从过去几天开始,我一直在尝试用Angular for Android应用程序在NativeScript中实现kiosk模式(锁定应用程序) 我直接尝试过,但无法处理Android中的所有按钮,如Home和最近的应用程序按钮。我能够处理后退和音量上下按钮 另一种方法是,我尝试使用Android Native创建自己的插件,但我无法做到这一点 Android Native中有两种Kiosk模式选项。一个是屏幕固定(以编程方式),另一个是在Android中使用COSU(这不是我的要求,因为我无法将应用

从过去几天开始,我一直在尝试用Angular for Android应用程序在NativeScript中实现kiosk模式(锁定应用程序)

我直接尝试过,但无法处理Android中的所有按钮,如Home和最近的应用程序按钮。我能够处理后退和音量上下按钮

另一种方法是,我尝试使用Android Native创建自己的插件,但我无法做到这一点

Android Native中有两种Kiosk模式选项。一个是屏幕固定(以编程方式),另一个是在Android中使用COSU(这不是我的要求,因为我无法将应用程序设置为1000台设备的设备所有者)

因此,任何人都可以分享他们在Android中使用屏幕固定的知识,并在NativeScript中为其创建插件和NativeScript中的示例代码

提前谢谢

下面是我的Android本机Java代码,用于实现屏幕固定

package org.nativescript.sdoddapaneni.kioskmodeplugin;

import android.app.ActivityManager;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class LoginActivity extends AppCompatActivity {

    private Button pinAppBtn;
    private Button unpinAppBtn;
    private ActivityManager am;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        pinAppBtn = (Button) findViewById(R.id.pin_app);
        unpinAppBtn = (Button) findViewById(R.id.unpin_app);

        am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

        pinAppBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                pin();
            }
        });
        unpinAppBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                unpin();
            }
        });

    }

    public void unpin() {
        if (am.isInLockTaskMode()) {
            stopLockTask();
        } else {
            Toast.makeText(this, "Application already unpinned !", Toast.LENGTH_SHORT).show();
        }
    }

    public void pin() {
        startLockTask();
    }
}

是在NativeScript中扩展默认活动的方式。仅供参考,由于4.x版NativeScript仍在使用,从他们推出的5.x版开始,预计将在几天后发布

了解如何制作启动器应用程序来拦截home按钮。这是第一步。这不是一项简单的任务,你需要做大量的研究。我想让应用程序通过点击按钮以编程方式锁定,而不需要在设备中进行任何更改,如根目录或使应用程序具有启动器或设备所有者。我希望使用NativeScript完成此操作。我在互联网上找不到关于这方面的有用示例或信息。如果没有实现上述功能的插件,我怀疑NativeScript能否做到这一点。插件只是一个可移植/可重用的模块。即使在project中,您也始终可以100%访问本机API。MobiLock将是我最后的优先选择,因为他们有自己的定价和内容。我想做一些事情,比如在用户登录后启用kiosk模式,在注销后禁用。我认为屏幕固定是最好的方法。但是应该看看如何在NativeScript中作为插件来实现这一点