接続の有無にかかわらず「ライセンスされていない」応答を提供するライセンスチェックに行って、私は回避策を試しています。私は信号強度を確認したいと思っていましたが、接続がないために信号強度が50%(15)を超えているか99を返している場合は、次回のアプリケーション起動時までチェックをバイパスします。この方法では、許可されたユーザーはNOT LICENSED応答を見るべきではありません。getGsmSignalStrength()は常に '99'を返します
質問1:getGsmSignalStrength()を使用すると、phone/3g/4g強度またはwifi強度だけが返されます。ユーザーがWi-Fiモードになっている場合よりもうまくいくはずですか?私はwifiが接続されているかどうかを確認する方法を知っているので、私はいつでも必要に応じてwifiをチェックするために使用することができます。
質問2:getGsmSignalStrength()は、自分の電話機を見つめているのに、完全な強度を示していても、常に「99」の値を返します。
ConnecetivityCheck.javaの目的はすべてチェックしてから続行します。今私はちょうど自動的にチェックをジャンプし、getGsmSignalStrength()番号でトーストボックスを表示するが、これは常に '99'を表示しています。
お願いします。ありがとうございます。私は私のコードを添付した以下 ...
たManifest.xmlは
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.emsprotocols.ilpaemsprotocols"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<!-- PERMISSIONS -->
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- LICENSE PERMISSIONS -->
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<!-- USES -->
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
<activity android:name=".ProtocolsSplashActivity"
android:label="@string/app_name">
<intent-filter>
の.javaは
package com.emsprotocols.ilpaemsprotocols;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.widget.Toast;
public class ConnectivityCheck extends Activity {
TelephonyManager Tel;
MyPhoneStateListener MyListener;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
/* Update the listener, and start it */
MyListener = new MyPhoneStateListener();
Tel = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
Tel.listen(MyListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
startActivity(new Intent(this, ProtocolsMMenuActivity.class));
ConnectivityCheck.this.finish();
}
/* Called when the application is minimized */
@Override
protected void onPause()
{
super.onPause();
Tel.listen(MyListener, PhoneStateListener.LISTEN_NONE);
}
/* Called when the application resumes */
@Override
protected void onResume()
{
super.onResume();
Tel.listen(MyListener,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}
/* —————————– */
/* Start the PhoneState listener */
/* —————————– */
private class MyPhoneStateListener extends PhoneStateListener
{
/* Get the Signal strength from the provider, each tiome there is an update */
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
int strengthAmplitude = signalStrength.getGsmSignalStrength();
super.onSignalStrengthsChanged(signalStrength);
Toast.makeText(getApplicationContext(), "GSM Cinr = "
+ String.valueOf(strengthAmplitude), Toast.LENGTH_SHORT).show();
}
};/* End of private Class */
}
私は米国にいます。 DOH!それはなぜそれが来るのかを説明するだろう99. LOL。ありがとうございました。あなたが見ていることは、常に小さなものです。あなたはCDMAの範囲を知っていますか? – djmedic
申し訳ありませんが、その情報を見つけるのは難しくありません。がんばろう! – Heinrisch
CDMAの範囲は何ですか?常に負のdBmなので、どのようにパーセンテージで動作するかはわかりません。 – JPM