telephonyManager.listen强制应用程序终止

Iam与Android合作,撰写一个跟踪通话事件的小应用程序。 每次我尝试绑定列表器时,os都会强制应用程序关闭,以至于无法接受。 我错过了什么? 这是我的代码:

包com.example.helloandroid;

导入android.app.Activity; import android.content.Context; 导入android.os.Bundle; 导入android.telephony.CellLocation; import android.telephony.PhoneStateListener; 导入android.telephony.ServiceState; 导入android.telephony.TelephonyManager; 导入android.widget.TextView;

公共类helloAndroid延伸活动{

TextView textOut; TelephonyManager telephonyManager; PhoneStateListener phoneStateListener;

@Override public void onDestroy(){telephonyManager.listen(phoneStateListener,PhoneStateListener.LISTEN_NONE);
}

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
 // Get the UI
    textOut = (TextView) findViewById(R.id.textOut);

 // Get the telephony manager
    telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

    // Create a new PhoneStateListener
    phoneStateListener = new PhoneStateListener() {
     public void onCallForwardingIndicatorChanged(boolean cfi) {}
     public void onCallStateChanged(int state, String incomingNumber) {}
     public void onCellLocationChanged(CellLocation location) {}
     public void onDataActivity(int direction) {}
     public void onDataConnectionStateChanged(int state) {}
     public void onMessageWaitingIndicatorChanged(boolean mwi) {}
     public void onServiceStateChanged(ServiceState serviceState) {

      String stateString = "N/A";
         switch (serviceState.getState()) {
         case TelephonyManager.CALL_STATE_IDLE:
           stateString = "Idle";
           break;
         case TelephonyManager.CALL_STATE_OFFHOOK:
           stateString = "Off Hook";
           break;
         case TelephonyManager.CALL_STATE_RINGING:
           stateString = "Ringing";
           break;
         }
         textOut.append(String.format("nonCallStateChanged: %s", stateString));

     }
     public void onSignalStrengthChanged(int asu) {}
     };

    // Register the listener with the telephony manager
    telephonyManager.listen(phoneStateListener,
       PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR |
       PhoneStateListener.LISTEN_CALL_STATE |
       PhoneStateListener.LISTEN_CELL_LOCATION |
       PhoneStateListener.LISTEN_DATA_ACTIVITY |
       PhoneStateListener.LISTEN_DATA_CONNECTION_STATE |
       PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR |
       PhoneStateListener.LISTEN_SERVICE_STATE |
       PhoneStateListener.LISTEN_SIGNAL_STRENGTH); 

}

}


我的错误:需要添加权限ACCESS_COARSE_LOCATION

链接地址: http://www.djcxy.com/p/4457.html

上一篇: telephonyManager.listen forces application to terminate

下一篇: How do I create a transparent Activity on Android?