-1

私は Android が初めてで、電話の通話状態を読み取る必要があります。アプリの実行時 (停止時) にエラーが発生します。

package com.example.droid1;

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

public class DroidActivity extends Activity {
    private TextView text0;
    private TelephonyManager telephoneM;
    private PhoneStateListener listner;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_droid);
        text0 = (TextView) findViewById(R.id.textout);
        telephoneM = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        listner = new PhoneStateListener()
        {
            public void onCallStateChanged(int state, String incomingnumber) {
                String stateS = "N/A";
                switch(state) {
                case TelephonyManager.CALL_STATE_IDLE:
                    stateS = "Oscioso";
                    Toast.makeText(DroidActivity.this, ""+stateS,Toast.LENGTH_SHORT).show();
                    break;
                case TelephonyManager.CALL_STATE_RINGING:
                    stateS = "Sonando";
                    Toast.makeText(DroidActivity.this, ""+stateS,Toast.LENGTH_SHORT).show();
                    break;
                case TelephonyManager.CALL_STATE_OFFHOOK:
                    stateS = "Ocupado";
                    Toast.makeText(DroidActivity.this, ""+stateS,Toast.LENGTH_SHORT).show();
                    break;  
                }
                text0.append (String.format("\nonCallStateChanged: %s",stateS));

            }
        };
        telephoneM.listen(listner, PhoneStateListener.LISTEN_CALL_STATE);
    }
}

Eclipse にエラー メッセージはありません。アプリは仮想デバイスに問題なくインストールされますが、実行すると「残念ながら Droid1 が停止しました」というエラー メッセージが表示されます。アドバイスをいただければ幸いです。どうも

4

1 に答える 1

0

マニフェストを確認してください。

この許可を入れましたか

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

?

于 2014-01-29T11:17:09.423 に答える