首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建Android版phonegap brightness插件

如何创建Android版phonegap brightness插件
EN

Stack Overflow用户
提问于 2012-11-14 02:36:23
回答 1查看 1.6K关注 0票数 1

因为我发现没有办法使用Phonegap来改变设备的亮度,所以我决定自己创建这个插件。我是Phonegap的新手,我不知道它难不难。我有一些关于如何为Phonegap创建插件的例子,但有一些事情我不理解。我有这个改变屏幕亮度的代码,我想为Phonegap创建一个调用它的方法:

代码语言:javascript
复制
private void setBrightness(int brightness) {
    WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
    layoutParams.screenBrightness = brightness / 100.0f;
    getWindow().setAttributes(layoutParams);
}

有可能吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 03:51:06

是的,如果你遵循plugin development guide,这是很容易做到的。对于你想要做的事情,它应该是这样的:

代码语言:javascript
复制
cordova.define("cordova/plugin/brightness", 
  function(require, exports, module) {
    var exec = require("cordova/exec");
    var Brightness = function () {};

    var BrightnessError = function(code, message) {
      this.code = code || null;
      this.message = message || '';
    };

    Brightness.CALL_FAILED = 0;

    Brightness.prototype.set = function(level,success,fail) {
      exec(success,fail,"Brightness", "set",[level]);
    };

    var brightness = new Brightness();
    module.exports = brightness;
});

然后,您需要编写一些Java代码来进行电话呼叫。您需要创建一个扩展插件类的新类,并编写一个执行方法,如下所示:

代码语言:javascript
复制
public PluginResult execute(String action, JSONArray args, String callbackId) {
    PluginResult.Status status = PluginResult.Status.OK;
    String result = "";

    try {
        if (action.equals("set")) {
            int brightness = args.getInt(0);
            WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
            layoutParams.screenBrightness = brightness / 100.0f;
            this.cordova.getActivity().getWindow().setAttributes(layoutParams);
        }
        else {
            status = PluginResult.Status.INVALID_ACTION;
        }
        return new PluginResult(status, result);
    } catch (JSONException e) {
        return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
    }    
}

无论您如何命名这个类,都需要在res/xml/config.xml文件中添加一行,以便PluginManager可以创建它。

代码语言:javascript
复制
<plugin name="Brightness" value="org.apache.cordova.plugins.Brightness"/>

最后,在你的JavaScript代码中,你需要创建他们的插件,并像这样调用它:

代码语言:javascript
复制
function panicButton() {
    var brightness = cordova.require("cordova/plugin/brightness");
    brightness.set(50);
}

这应该就行了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13366639

复制
相关文章

相似问题

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