根据Android专用设备文档无法找到getContext()

时间:2018-12-20 07:33:30

标签: android android-studio

我知道之前也曾问过类似的问题,但是我已经解决了这些问题,但它们并没有帮助我。 我正在尝试将Samsung Tab A(Android 8.1)设置为一次性设备。我已经编写了可以完美运行的应用程序,但是由于该设备将被公众使用,因此我需要将其锁定为信息亭模式。 我正在尝试按照下面链接的开发人员指南进行操作,但是会立即遇到问题。
https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode

所以我要做的第一件事是按照给出的示例将应用列入白名单:

// Whitelist two apps.
private static final String KIOSK_PACKAGE = "com.example.kiosk";
private static final String PLAYER_PACKAGE = "com.example.player";
private static final String[] APP_PACKAGES = {KIOSK_PACKAGE, PLAYER_PACKAGE};

// ...

Context context = getContext();
DevicePolicyManager dpm =
    (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName adminName = getComponentName(context);
dpm.setLockTaskPackages(adminName, APP_PACKAGES);

该代码的去向尚不清楚文档,但我将其放在onResume()的替代中。

我在Android Studio中使用自动导入,但是它告诉我找不到getContext()。我尝试更改为getApplicationContext()并仅按照其他地方的建议使用this,但随后它抱怨getComponentName()不应该有任何参数。我尝试过使用context.getComponentName()删除上下文参数,也没有使用上下文变量。它们可以编译,但是应用程序在设备上崩溃(位于setLockTaskPackages())。

我怀疑关键是要找出为什么找不到getContext()的原因,然后希望其他所有内容都到位。知道可能缺少什么吗?

2 个答案:

答案 0 :(得分:0)

如果您正在使用活动,请使用关键字this而不是getContext

答案 1 :(得分:0)

getContext()用于片段获取上下文。这是活动,您可以使用Yourclass.thisthis。您也可以使用this

了解有关上下文的用途