2

从过去几天开始,我正在尝试使用 Angular for Android App 在 NativeScript 中实现信息亭模式(锁定应用程序)。

我已经直接尝试过,但无法处理 Android 中的所有按钮,例如 Home 和 Recent Apps 按钮。我能够处理返回和音量增大和减小按钮。

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

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

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

提前致谢!

下面是我的 Android Native 实现 Screen Pinning 的 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();
    }
}
4

1 回答 1

0

是您将如何扩展 NativeScript 中的默认活动的方法。仅供参考,随着 v4.x NativeScript 仍然使用活动,盯着 5.x 他们引入了AppCompatActivity预计将在几天内发布。

于 2018-10-27T06:31:07.533 回答