如何创建一个插件来获取phonegap中的信号强度

时间:2015-06-11 06:50:02

标签: android angularjs cordova ionic-framework phonegap-plugins

好的问题是如何创建一个插件来获得信号强度,说实话,我已经通过本机方式获得了信号强度。所以我尝试对原生方式进行更改。我不知道我在做什么,我不确定这是否有效,只是下一步的一些友好指针特别有助于angular.js(对我来说是新的东西)哦有人可以提一下什么是JSONArray参数用于执行方法?

public class App extends Plugin extends CordovaPlugin{

int signalStrength=0;
LocationManager locmanager;
Location c;
TelephonyManager  tm;
getRssi i;
private static final String dbm="getSignalStrength";


@Override
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
    super.initialize(cordova, webView);
    // your init code here
    this.tm = (TelephonyManager) cordova.getActivity().getSystemService(Context.TELEPHONY_SERVICE);
    tm.listen(this.i, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}
/**
 * Executes the request and returns PluginResult.
 *
 * @param action        The action to execute.
 * @param args          JSONArry of arguments for the plugin.
 * @param callbackId    The callback id used when calling back into JavaScript.
 * @return              A PluginResult object with a status and message.
 */
@Override
public boolean execute(String action, JSONArray args, CallbackContext callBackContext)throws JSONExecption {

        if (action.equals(dbm)) {
            callBackContext.success(Integer.toString(this.getSignalStrength()));
    }
}

public int getSignalStrength() {
    return signalStrength;
}

public class getRssi extends PhoneStateListener
{


    @Override
    public void onSignalStrengthsChanged(SignalStrength signalStrengths) {

        super.onSignalStrengthsChanged(signalStrengths);
        int SignalStrength_ASU= signalStrengths.getGsmSignalStrength();
        signalStrength= (2 * SignalStrength_ASU) - 113; // -> dBm

       }
}

}

0 个答案:

没有答案