我想在收到呼叫結束後發送短信,我接到一個電話,我想該呼叫後自動向他/她的消息,我無法啓動的活動時,我的程度我的同班同學PhoneStateListener,請回復我如何在android中調用結束後開始一個活動?
1
A
回答
1
你需要我爲此提供服務/廣播接收器。它會收到通話結束的系統通知。所以一旦你得到它,你需要處理該通知&。然後,您可以在收到通知時開始發送消息。
組件需要的:
服務
廣播接收器
1
您需要實現broadcastreceiver
<receiver android:name=".PhoneStateBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
你應該創建一個BroadcastReceiver:更多在這裏
package com.mobisys.android.salesbooster;
import com.mobisys.android.salesbooster.database.HelperDatabase;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.ContactsContract.PhoneLookup;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
public class PhoneStateBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "PhoneStateBroadcastReceiver";
Context mContext;
String incoming_number;
private int prev_state;
@Override
public void onReceive(Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); //TelephonyManager object
CustomPhoneStateListener customPhoneListener = new CustomPhoneStateListener();
telephony.listen(customPhoneListener, PhoneStateListener.LISTEN_CALL_STATE); //Register our listener with TelephonyManager
Bundle bundle = intent.getExtras();
String phoneNr = bundle.getString("incoming_number");
Log.v(TAG, "phoneNr: "+phoneNr);
mContext = context;
}
/* Custom PhoneStateListener */
public class CustomPhoneStateListener extends PhoneStateListener {
private static final String TAG = "CustomPhoneStateListener";
@Override
public void onCallStateChanged(int state, String incomingNumber){
if(incomingNumber != null && incomingNumber.length() > 0)
incoming_number = incomingNumber;
switch(state){
case TelephonyManager.CALL_STATE_RINGING:
Log.d(TAG, "CALL_STATE_RINGING");
prev_state=state;
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d(TAG, "CALL_STATE_OFFHOOK");
prev_state=state;
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.d(TAG, "CALL_STATE_IDLE==>"+incoming_number);
if((prev_state == TelephonyManager.CALL_STATE_OFFHOOK)){
prev_state=state;
//Answered Call which is ended
}
if((prev_state == TelephonyManager.CALL_STATE_RINGING)){
prev_state=state;
//Rejected or Missed call
}
break;
}
}
}
}
閱讀,資料來源:http://mobisys.in/blog/2011/09/is-your-call-ended-on-android-phone/
相關問題
- 1. 如何在Android動畫結束後啓動開始活動
- 2. 如何檢測,當一個Android活動的開始和結束
- 3. 如何開始動畫結束活動
- 4. Robospice Android的 - 即在開始一個活動,結束另一個活動spiceRequest
- 5. 在結束前一個之後開始活動
- 6. 如何在動畫結束後開始新的活動?
- 7. 如何製作啓動畫面結束動畫並開始下一個活動?
- 8. 活動結束活動Android
- 9. 從onContextItemSelected啓動後調用完成的活動結束初始活動?
- 10. 在另一個活動中開始的活動的Android清單
- 11. 如何在搜索開始新行爲時結束舊活動活動
- 12. Android的 - 如何通過的EditText價值後臺進程,然後開始新的活動一旦結束
- 13. 我如何開始一個活動的結果,並從我開始的活動中獲得結果?
- 14. Android-如何啓動活動啓動結束後
- 15. Android - 開始兩個活動
- 16. 如何開始活動並結束之前啓動的所有其他活動
- 17. Android:日曆活動開始/結束時是否可以通知?
- 18. 的Android Gameloop:遊戲結束,並開始活動
- 19. 如何在點擊viewpager後開始下一個活動?
- 20. 如何在第一個活動完成後纔開始線程?
- 21. 開始一個新的活動OnClick(Android)
- 22. android - 開始一個活動onTouch
- 23. 從PhoneGap開始一個android活動javaScript
- 24. Android aSyncTask並開始另一個活動
- 25. 如何在開始/結束滾動時掛鉤到Android ScrollView?
- 26. 如何從ItemizedOverlay調用一個活動方法(不是開始)?
- 27. 如何創建在活動結束後運行的Android服務
- 28. android-如何在活動結束後顯示對話框
- 29. 視頻結束後結束活動
- 30. 如何開始一個活動Dialog
嘿朋友,我照你說的,但它的表演力,關閉應用程序,甚至在手機上也執行CALL_STATE_OFFHOOK電話號碼未緩存,通話結束後強制關閉。 –