[英]how to create phonegap brightness plugin for Android
由于我发现无法使用 Phonegap 更改设备亮度,因此我决定自己创建此插件。 我是 Phonegap 的新手,我不知道它是否难。 我有一些关于如何为 Phonegap 创建插件的例子,但有些事情我不明白。 我有这个用于更改屏幕亮度的代码,我想为 Phonegap 创建一个调用它的方法:
private void setBrightness(int brightness) {
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = brightness / 100.0f;
getWindow().setAttributes(layoutParams);
}
是否可以? 谢谢
是的,如果您遵循插件开发指南,这很容易做到。 对于你想做的事情,它会是这样的:
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 代码来进行电话呼叫。 您需要创建一个扩展 Plugin 类的新类并编写一个执行方法,如下所示:
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 可以创建它。
<plugin name="Brightness" value="org.apache.cordova.plugins.Brightness"/>
最后在你的 JavaScript 代码中,你需要创建他们的插件并像这样调用它:
function panicButton() {
var brightness = cordova.require("cordova/plugin/brightness");
brightness.set(50);
}
那应该差不多了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.