好的问题是如何创建一个插件来获得信号强度,说实话,我已经通过本机方式获得了信号强度。所以我尝试对原生方式进行更改。我不知道我在做什么,我不确定这是否有效,只是下一步的一些友好指针特别有助于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
}
}
}