首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过luajava获取Android系统设置

通过luajava获取Android系统设置
EN

Stack Overflow用户
提问于 2019-02-03 19:24:07
回答 1查看 164关注 0票数 2

我试图在XPrivacyLua自定义钩子中获取系统设置的值。

Settings.Secure \ Android开发人员#getInt()

代码语言:javascript
复制
function after(hook, param)
    local result = param:getResult()
    if result == null or result:getItemCount() == 0 then
        return false
    end
    -- 
    local context = param:getApplicationContext()
    local cls = luajava.bindClass('android.provider.Settings$Secure')
    local isColorInverted = cls:getInt(context, cls:ACCESSIBILITY_DISPLAY_INVERSION_ENABLED)
    if isColorInverted == 1 then
        return true
    end
    --
    local fake = result:newPlainText('XPrivacyLua', 'Private')
    param:setResult(fake)
    return true
end

cls:ACCESSIBILITY_DISPLAY_INVERSION_ENABLED:尝试1:

代码语言:javascript
复制
local isColorInverted = cls:getInt(context, cls:ACCESSIBILITY_DISPLAY_INVERSION_ENABLED)
-- [string "script"]:9: function arguments expected

cls.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED 尝试2:

代码语言:javascript
复制
local isColorInverted = cls:getInt(context, cls.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED)
-- Exception:
-- org.luaj.vm2.LuaError: script:9 no coercible public method at org.luaj.vm2.LuaValue.error(SourceFile:1041)
-- ...
-- <full stack trace>

尝试3: ACCESSIBILITY_DISPLAY_INVERSION_ENABLED

代码语言:javascript
复制
local isColorInverted = cls:getInt(context, ACCESSIBILITY_DISPLAY_INVERSION_ENABLED)
-- Same as attempt 2

在luajava中获得ACCESSIBILITY_DISPLAY_INVERSION_ENABLED值的正确语法是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-02-03 21:00:07

我对getInt的第一个参数是错误的。

它需要一个ContentResolver,而我传递给它一个ApplicationContext。

下面是工作代码。

代码语言:javascript
复制
function after(hook, param)
    local result = param:getResult()
    if result == null or result:getItemCount() == 0 then
        return false
    end
    -- 
    local context = param:getApplicationContext()
    local cr = context:getContentResolver()
    local cls = luajava.bindClass('android.provider.Settings$Secure')
    local isColorInverted = cls:getInt(cr, ACCESSIBILITY_DISPLAY_INVERSION_ENABLED)
    if isColorInverted == 1 then
        return true
    end
    --
    local fake = result:newPlainText('XPrivacyLua', 'Private')
    param:setResult(fake)
    return true
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54506649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档