1

Phonegap を使用してデバイスの明るさを変更する方法がないことがわかったので、このプラグインを自分で作成することにしました。私はPhonegapが初めてで、難しいかどうかわかりません。Phonegap 用のプラグインを作成する方法に関するいくつかの例がありますが、理解できないことがいくつかあります。画面の明るさを変更するためのこのコードがあり、それを呼び出す Phonegap のメソッドを作成したいと思います。

private void setBrightness(int brightness) {
    WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
    layoutParams.screenBrightness = brightness / 100.0f;
    getWindow().setAttributes(layoutParams);
}

出来ますか?ありがとう

4

1 に答える 1

2

ええ、プラグイン開発ガイドに従えば、それはとても簡単です。やりたいことは次のようになります。

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);
}

それはそれについて行う必要があります。

于 2012-11-13T19:51:06.080 に答える