java - 获取 WCDMA 信号强度

标签 java android signal-strength

您好,我正在开发一个 Android 应用程序来监控 WCDMA 网络的 RSCP 和 ECNO,我尝试使用以下代码,在构建过程中没有错误,但当我在手机上运行该应用程序时出现错误(Samsung Galaxcy)核心 Prime)。

代码:

    public class SignalStrength extends ActionBarActivity {

    TelephonyManager tManager;
    PhoneStateListener pListener;
    public static String LOG_TAG = "PhoneStateListener";
    public TextView rs = (TextView) findViewById(R.id.rscp);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_signal_strength);
        tManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
        tManager.listen(pListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_signal_strength, menu);
        return true;
    }

    public void onSignalStrengthsChanged(CellSignalStrengthWcdma signalStrength) {
        //super.onSignalStrengthsChanged(signalStrength);
        Log.i(LOG_TAG, "onSignalStrengthsChanged" + signalStrength);
        Log.i(LOG_TAG, "onSignalStrengthsChanged: getRscp" + signalStrength.getDbm());
        int ttt = signalStrength.getDbm();
        rs.setText(String.valueOf(ttt));
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
} 

代码有错误吗?

请帮我解决这个问题,提前致谢。

新代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_signal_strength);
    TextView textView = (TextView) findViewById(R.id.textView);
    TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
    GsmCellLocation cellLocation = (GsmCellLocation) telephonyManager.getCellLocation();
    CellInfoWcdma cellinfoWcdma = null;
    if(cellLocation!=null){
        cellinfoWcdma = (CellInfoWcdma)telephonyManager.getAllCellInfo().get(0);
        CellSignalStrengthWcdma cellSignalStrengthWcdma = cellinfoWcdma.getCellSignalStrength();
        if(Build.VERSION.SDK_INT>=18){
            cellSignalStrengthWcdma.getDbm();
            int ttt = cellSignalStrengthWcdma.getDbm();
            //int cid = cellLocation.getPsc();
            textView.setText(String.valueOf(ttt));
        }

    }
}

新的调试日志:

> 03-15 22:13:21.710  15005-15005/com.asiacell.signalstrength
> D/dalvikvm﹕ Late-enabling CheckJNI 03-15 22:13:21.770 
> 15005-15005/com.asiacell.signalstrength D/ActivityThread﹕
> handleBindApplication:com.asiacell.signalstrength 03-15 22:13:21.800 
> 15005-15005/com.asiacell.signalstrength W/ApplicationPackageManager﹕
> getCSCPackageItemText() 03-15 22:13:21.800 
> 15005-15005/com.asiacell.signalstrength D/DisplayManager﹕
> DisplayManager() 03-15 22:13:21.830 
> 15005-15005/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onNestedScrollAccepted, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
> 03-15 22:13:21.830  15005-15005/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11348:
> Landroid/view/ViewGroup;.onNestedScrollAccepted
> (Landroid/view/View;Landroid/view/View;I)V 03-15 22:13:21.830 
> 15005-15005/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6f at 0x0000 03-15 22:13:21.830 
> 15005-15005/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onStopNestedScroll, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
> 03-15 22:13:21.830  15005-15005/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11354:
> Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
> 03-15 22:13:21.830  15005-15005/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000 03-15 22:13:21.830 
> 15005-15005/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll,
> referenced from method
> android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled 03-15 22:13:21.830  15005-15005/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 9039:
> Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll
> ()V 03-15 22:13:21.830  15005-15005/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e 03-15 22:13:21.840 
> 15005-15005/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getChangingConfigurations,
> referenced from method
> android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
> 03-15 22:13:21.840  15005-15005/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 364:
> Landroid/content/res/TypedArray;.getChangingConfigurations ()I 03-15
> 22:13:21.840  15005-15005/com.asiacell.signalstrength D/dalvikvm﹕ VFY:
> replacing opcode 0x6e at 0x0002 03-15 22:13:21.840 
> 15005-15005/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getType, referenced from method
> android.support.v7.internal.widget.TintTypedArray.getType 03-15
> 22:13:21.840  15005-15005/com.asiacell.signalstrength W/dalvikvm﹕ VFY:
> unable to resolve virtual method 386:
> Landroid/content/res/TypedArray;.getType (I)I 03-15 22:13:21.840 
> 15005-15005/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6e at 0x0002 03-15 22:13:21.940 
> 15005-15005/com.asiacell.signalstrength D/OpenGLRenderer﹕ Enabling
> debug mode 0 03-15 22:13:21.990 
> 15005-15005/com.asiacell.signalstrength I/Timeline﹕ Timeline:
> Activity_idle id: android.os.BinderProxy@41eedeb8 time:95899927 03-15
> 22:14:02.329  15081-15081/com.asiacell.signalstrength D/dalvikvm﹕
> Late-enabling CheckJNI 03-15 22:14:02.379 
> 15081-15081/com.asiacell.signalstrength D/ActivityThread﹕
> handleBindApplication:com.asiacell.signalstrength 03-15 22:14:02.409 
> 15081-15081/com.asiacell.signalstrength W/ApplicationPackageManager﹕
> getCSCPackageItemText() 03-15 22:14:02.409 
> 15081-15081/com.asiacell.signalstrength D/DisplayManager﹕
> DisplayManager() 03-15 22:14:02.439 
> 15081-15081/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onNestedScrollAccepted, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
> 03-15 22:14:02.439  15081-15081/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11350:
> Landroid/view/ViewGroup;.onNestedScrollAccepted
> (Landroid/view/View;Landroid/view/View;I)V 03-15 22:14:02.439 
> 15081-15081/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6f at 0x0000 03-15 22:14:02.439 
> 15081-15081/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onStopNestedScroll, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
> 03-15 22:14:02.439  15081-15081/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11356:
> Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
> 03-15 22:14:02.439  15081-15081/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000 03-15 22:14:02.449 
> 15081-15081/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll,
> referenced from method
> android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled 03-15 22:14:02.449  15081-15081/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 9039:
> Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll
> ()V 03-15 22:14:02.449  15081-15081/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e 03-15 22:14:02.449 
> 15081-15081/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getChangingConfigurations,
> referenced from method
> android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
> 03-15 22:14:02.449  15081-15081/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 364:
> Landroid/content/res/TypedArray;.getChangingConfigurations ()I 03-15
> 22:14:02.449  15081-15081/com.asiacell.signalstrength D/dalvikvm﹕ VFY:
> replacing opcode 0x6e at 0x0002 03-15 22:14:02.449 
> 15081-15081/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getType, referenced from method
> android.support.v7.internal.widget.TintTypedArray.getType 03-15
> 22:14:02.449  15081-15081/com.asiacell.signalstrength W/dalvikvm﹕ VFY:
> unable to resolve virtual method 386:
> Landroid/content/res/TypedArray;.getType (I)I 03-15 22:14:02.449 
> 15081-15081/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6e at 0x0002 03-15 22:14:02.499 
> 15081-15081/com.asiacell.signalstrength D/AndroidRuntime﹕ Shutting
> down VM 03-15 22:14:02.499  15081-15081/com.asiacell.signalstrength
> W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception
> (group=0x416ebbc0) 03-15 22:14:02.509 
> 15081-15081/com.asiacell.signalstrength E/AndroidRuntime﹕ FATAL
> EXCEPTION: main
>     Process: com.asiacell.signalstrength, PID: 15081
>     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.asiacell.signalstrength/com.asiacell.signalstrength.SignalStrength}:
> java.lang.NullPointerException
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
>             at android.app.ActivityThread.access$800(ActivityThread.java:155)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:136)
>             at android.app.ActivityThread.main(ActivityThread.java:5433)
>             at java.lang.reflect.Method.invokeNative(Native Method)
>             at java.lang.reflect.Method.invoke(Method.java:515)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
>             at dalvik.system.NativeStart.main(Native Method)
>      Caused by: java.lang.NullPointerException
>             at com.asiacell.signalstrength.SignalStrength.onCreate(SignalStrength.java:32)
>             at android.app.Activity.performCreate(Activity.java:5301)
>             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2291)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
>             at android.app.ActivityThread.access$800(ActivityThread.java:155)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:136)
>             at android.app.ActivityThread.main(ActivityThread.java:5433)
>             at java.lang.reflect.Method.invokeNative(Native Method)
>             at java.lang.reflect.Method.invoke(Method.java:515)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
>             at dalvik.system.NativeStart.main(Native Method) 03-15 22:17:02.385  15297-15297/com.asiacell.signalstrength
> D/ActivityThread﹕ handleBindApplication:com.asiacell.signalstrength
> 03-15 22:17:02.415  15297-15297/com.asiacell.signalstrength
> W/ApplicationPackageManager﹕ getCSCPackageItemText() 03-15
> 22:17:02.425  15297-15297/com.asiacell.signalstrength
> D/DisplayManager﹕ DisplayManager() 03-15 22:17:02.455 
> 15297-15297/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onNestedScrollAccepted, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
> 03-15 22:17:02.455  15297-15297/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11348:
> Landroid/view/ViewGroup;.onNestedScrollAccepted
> (Landroid/view/View;Landroid/view/View;I)V 03-15 22:17:02.455 
> 15297-15297/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6f at 0x0000 03-15 22:17:02.455 
> 15297-15297/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onStopNestedScroll, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
> 03-15 22:17:02.455  15297-15297/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11354:
> Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
> 03-15 22:17:02.455  15297-15297/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000 03-15 22:17:02.465 
> 15297-15297/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll,
> referenced from method
> android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled 03-15 22:17:02.465  15297-15297/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 9039:
> Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll
> ()V 03-15 22:17:02.465  15297-15297/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e 03-15 22:17:02.465 
> 15297-15297/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getChangingConfigurations,
> referenced from method
> android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
> 03-15 22:17:02.465  15297-15297/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 364:
> Landroid/content/res/TypedArray;.getChangingConfigurations ()I 03-15
> 22:17:02.465  15297-15297/com.asiacell.signalstrength D/dalvikvm﹕ VFY:
> replacing opcode 0x6e at 0x0002 03-15 22:17:02.465 
> 15297-15297/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getType, referenced from method
> android.support.v7.internal.widget.TintTypedArray.getType 03-15
> 22:17:02.465  15297-15297/com.asiacell.signalstrength W/dalvikvm﹕ VFY:
> unable to resolve virtual method 386:
> Landroid/content/res/TypedArray;.getType (I)I 03-15 22:17:02.465 
> 15297-15297/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6e at 0x0002 03-15 22:17:02.585 
> 15297-15297/com.asiacell.signalstrength D/OpenGLRenderer﹕ Enabling
> debug mode 0 03-15 22:17:02.645 
> 15297-15297/com.asiacell.signalstrength I/Timeline﹕ Timeline:
> Activity_idle id: android.os.BinderProxy@41ef2ad8 time:96120583 03-15
> 22:17:54.546  15370-15370/com.asiacell.signalstrength
> D/ActivityThread﹕ handleBindApplication:com.asiacell.signalstrength
> 03-15 22:17:54.576  15370-15370/com.asiacell.signalstrength
> W/ApplicationPackageManager﹕ getCSCPackageItemText() 03-15
> 22:17:54.576  15370-15370/com.asiacell.signalstrength
> D/DisplayManager﹕ DisplayManager() 03-15 22:17:54.606 
> 15370-15370/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onNestedScrollAccepted, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
> 03-15 22:17:54.606  15370-15370/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11348:
> Landroid/view/ViewGroup;.onNestedScrollAccepted
> (Landroid/view/View;Landroid/view/View;I)V 03-15 22:17:54.606 
> 15370-15370/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6f at 0x0000 03-15 22:17:54.606 
> 15370-15370/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onStopNestedScroll, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
> 03-15 22:17:54.606  15370-15370/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11354:
> Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
> 03-15 22:17:54.606  15370-15370/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000 03-15 22:17:54.606 
> 15370-15370/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll,
> referenced from method
> android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled 03-15 22:17:54.606  15370-15370/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 9039:
> Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll
> ()V 03-15 22:17:54.606  15370-15370/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e 03-15 22:17:54.616 
> 15370-15370/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getChangingConfigurations,
> referenced from method
> android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
> 03-15 22:17:54.616  15370-15370/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 364:
> Landroid/content/res/TypedArray;.getChangingConfigurations ()I 03-15
> 22:17:54.616  15370-15370/com.asiacell.signalstrength D/dalvikvm﹕ VFY:
> replacing opcode 0x6e at 0x0002 03-15 22:17:54.616 
> 15370-15370/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getType, referenced from method
> android.support.v7.internal.widget.TintTypedArray.getType 03-15
> 22:17:54.616  15370-15370/com.asiacell.signalstrength W/dalvikvm﹕ VFY:
> unable to resolve virtual method 386:
> Landroid/content/res/TypedArray;.getType (I)I 03-15 22:17:54.616 
> 15370-15370/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6e at 0x0002 03-15 22:17:54.716 
> 15370-15370/com.asiacell.signalstrength D/OpenGLRenderer﹕ Enabling
> debug mode 0 03-15 22:17:54.766 
> 15370-15370/com.asiacell.signalstrength I/Timeline﹕ Timeline:
> Activity_idle id: android.os.BinderProxy@41ee7198 time:96172707 03-15
> 22:24:10.483  15519-15519/com.asiacell.signalstrength
> D/ActivityThread﹕ handleBindApplication:com.asiacell.signalstrength
> 03-15 22:24:10.513  15519-15519/com.asiacell.signalstrength
> W/ApplicationPackageManager﹕ getCSCPackageItemText() 03-15
> 22:24:10.513  15519-15519/com.asiacell.signalstrength
> D/DisplayManager﹕ DisplayManager() 03-15 22:24:10.543 
> 15519-15519/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onNestedScrollAccepted, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
> 03-15 22:24:10.543  15519-15519/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11350:
> Landroid/view/ViewGroup;.onNestedScrollAccepted
> (Landroid/view/View;Landroid/view/View;I)V 03-15 22:24:10.543 
> 15519-15519/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6f at 0x0000 03-15 22:24:10.543 
> 15519-15519/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.view.ViewGroup.onStopNestedScroll, referenced from
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
> 03-15 22:24:10.543  15519-15519/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 11356:
> Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
> 03-15 22:24:10.543  15519-15519/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000 03-15 22:24:10.553 
> 15519-15519/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method
> android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll,
> referenced from method
> android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled 03-15 22:24:10.553  15519-15519/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 9039:
> Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll
> ()V 03-15 22:24:10.553  15519-15519/com.asiacell.signalstrength
> D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e 03-15 22:24:10.553 
> 15519-15519/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getChangingConfigurations,
> referenced from method
> android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
> 03-15 22:24:10.553  15519-15519/com.asiacell.signalstrength
> W/dalvikvm﹕ VFY: unable to resolve virtual method 364:
> Landroid/content/res/TypedArray;.getChangingConfigurations ()I 03-15
> 22:24:10.553  15519-15519/com.asiacell.signalstrength D/dalvikvm﹕ VFY:
> replacing opcode 0x6e at 0x0002 03-15 22:24:10.553 
> 15519-15519/com.asiacell.signalstrength I/dalvikvm﹕ Could not find
> method android.content.res.TypedArray.getType, referenced from method
> android.support.v7.internal.widget.TintTypedArray.getType 03-15
> 22:24:10.553  15519-15519/com.asiacell.signalstrength W/dalvikvm﹕ VFY:
> unable to resolve virtual method 386:
> Landroid/content/res/TypedArray;.getType (I)I 03-15 22:24:10.553 
> 15519-15519/com.asiacell.signalstrength D/dalvikvm﹕ VFY: replacing
> opcode 0x6e at 0x0002 03-15 22:24:10.613 
> 15519-15519/com.asiacell.signalstrength D/AndroidRuntime﹕ Shutting
> down VM 03-15 22:24:10.613  15519-15519/com.asiacell.signalstrength
> W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception
> (group=0x416ebbc0) 03-15 22:24:10.613 
> 15519-15519/com.asiacell.signalstrength E/AndroidRuntime﹕ FATAL
> EXCEPTION: main
>     Process: com.asiacell.signalstrength, PID: 15519
>     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.asiacell.signalstrength/com.asiacell.signalstrength.SignalStrength}:
> java.lang.NullPointerException
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
>             at android.app.ActivityThread.access$800(ActivityThread.java:155)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:136)
>             at android.app.ActivityThread.main(ActivityThread.java:5433)
>             at java.lang.reflect.Method.invokeNative(Native Method)
>             at java.lang.reflect.Method.invoke(Method.java:515)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
>             at dalvik.system.NativeStart.main(Native Method)
>      Caused by: java.lang.NullPointerException
>             at com.asiacell.signalstrength.SignalStrength.onCreate(SignalStrength.java:32)
>             at android.app.Activity.performCreate(Activity.java:5301)
>             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2291)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2378)
>             at android.app.ActivityThread.access$800(ActivityThread.java:155)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:136)
>             at android.app.ActivityThread.main(ActivityThread.java:5433)
>             at java.lang.reflect.Method.invokeNative(Native Method)
>             at java.lang.reflect.Method.invoke(Method.java:515)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
>             at dalvik.system.NativeStart.main(Native Method)

最佳答案

为了获得WCDMA信号强度,您可以使用以下代码:

TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
    List<CellInfo> cellList = telephonyManager.getAllCellInfo();
    CellInfoWcdma cellinfoWcdma = null;
    if(cellList!=null && !cellList.isEmpty()){
        cellinfoWcdma = (CellInfoWcdma)telephonyManager.getAllCellInfo().get(0);
        CellSignalStrengthWcdma cellSignalStrengthWcdma = cellinfoWcdma.getCellSignalStrength();
        if(Build.VERSION.SDK_INT>=18){
            cellSignalStrengthWcdma.getDbm();
        }
    }

请注意,getDbm() 方法仅从 API 18 开始可用。

编辑:您还需要在 Manifest.xml 文件中添加以下权限:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

关于java - 获取 WCDMA 信号强度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29054383/

相关文章:

安卓双卡信号强度

Java - 检查用户的串行代码格式是否有效的程序

java - 如何使用Prometheus监控集群?

android - 如何使文本大小适应 Android 中不同大小的设备/线性布局

android - 在 Android 中获取信号强度

android - 如果没有 Sim 存在,设备显示信号强度

java - 有人有使用 J/XFS 的经验吗?

java - 如何在异步线程中执行后台计算(在 REST Web 服务中)

android - 如何在Android应用程序中从Twitter获取用户信息?

java - IDE独立Android界面设计器