私の状況は、BroadcastReceiverクラスを拡張するClassBの内側からClassAから呼び出される特定のメソッドを呼び出すことです。私は別のクラスファイルの中からこれをやる方法と、BroadcastReceiverをセットアップする方法を理解しています。方法を作る方法電話が鳴ったときに別のAndroidクラスファイルから実行する?
以下は、BroadcastReceiverを拡張するクラスファイルです。 パブリッククラスWatchPhoneはBroadcastReceiver {
private ClassA classA;
@Override
public void onReceive(Context context, Intent BackToMain) {
// TODO Auto-generated method stub
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
int state = telephony.getCallState();
switch(state) {
case TelephonyManager.CALL_STATE_RINGING:
Log.d("TestServiceReceiver", "IDLE");
classA.IwantToDoThis();
break;
}
}
私は手動でそれを要求した場合、アプリケーションで素晴らしい仕事ん呼び出すしようとしている方法を拡張します。私のAndroidManifest.xmlで 私はちょうどクロージングアプリケーションタグの上の下部にあるこの
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
とこれを追加しました。
<receiver android:name=".WatchPhone">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
電話が鳴ると、アプリケーションがクラッシュして閉じます。私が何をすべきかに関するアイデア。
あなたが正しいです私はこれを行うには新しいんが、私はまだ取得していますNullPointerException私が電話を受けるたびにアプリケーションがクラッシュする – itgeek25
私はこれを修正するために、新しいBroadcastReceiver()を使って同じJavaクラス内にbroadcastreceiverを追加しました。それから私はそのクラスのメソッドを呼び出し、うまく動作します。 – itgeek25