应用程序GetGSMStrength意外关闭。请再试一次

时间:2012-01-27 13:26:48

标签: android signal-strength

我是android的新手..我创建了以下应用程序以返回信号强度

package com.example.GetGsmSignalStrength;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.widget.Toast;
import android.os.Bundle;

public class GetGsmSignalStrength extends Activity
{
   /* This variables need to be global, so we can used them onResume and onPause method to
      stop the listener */
   TelephonyManager        Tel;
   MyPhoneStateListener    MyListener;

   /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        /* Update the listener, and start it */
        MyListener   = new MyPhoneStateListener();
        Tel       = ( TelephonyManager )getSystemService(Context.TELEPHONY_SERVICE);
      Tel.listen(MyListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
    }

    /* 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)
      {
         super.onSignalStrengthsChanged(signalStrength);
         Toast.makeText(getApplicationContext(), "Go to Firstdroid!!! GSM Cinr = "
            + String.valueOf(signalStrength.getGsmSignalStrength()), Toast.LENGTH_SHORT).show();
      }

    };/* End of private Class */

}/* GetGsmSignalStrength */

但是当我运行它时会在弹出框中显示标题中提到的错误。我已经在androidmanifest.xml中进行了必要的权限更改,这就是我所做的一切。

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

为什么出现错误?它什么时候出现? 感谢

1 个答案:

答案 0 :(得分:0)

每次应用程序导致失败时都会显示“错误”,这是一个例外,它没有被设计为适当处理。

在Java中,异常通常与发生的错误类型,详细说明错误的消息以及堆栈跟踪相关联,该堆栈跟踪允许查找错误发生在代码中的确切位置。

当应用程序未处理异常时,应用程序将被强制关闭,异常将记录到Android日志文件,即“logcat”,可通过DDMS或shell从外部访问adb logcat