연결이 없거나 연결이없는 "라이센스가없는"응답을 제공하는 라이센스 검사에 대해 작업하고 있습니다. 신호 강도를 확인하고 싶었고 연결이 없기 때문에 50 % (15)를 넘거나 99를 반환하면 다음에 앱이 더 좋은 신호로 시작될 때까지 수표를 무시하고 싶습니다. 이렇게하면인가 된 사용자는 NOT LICENSED 응답을 볼 수 없습니다.getGsmSignalStrength()는 항상 '99'를 반환합니다.
질문 1 : getGsmSignalStrength()를 사용할 때 전화/3g/4g 강도 또는 무선 랜 강도 만 반환합니다. 사용자가 Wi-Fi 모드에있는 것보다 잘 작동해야하는 경우 Wi-Fi가 연결되어 있는지 확인하는 방법을 알고 있으므로 필요한 경우 Wi-Fi를 항상 사용할 수 있습니다.
질문 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