在我的Android應用程序中,我創建了一個BroadcastReceiver
,用於檢測來電;我的代碼運行得很好。如果有來電(EXTRA_STATE_RINGING
),我可以看到我incommingNumber在logcat中,還當用戶回答(EXTRA_STATE_OFFHOOK
)在android中檢測用戶回答的來電結束? (未拒絕)
- 我以前
shared preferences
存儲在振鈴狀態呼入號碼(string)的呼叫,然後將其置於摘機狀態。
這是我的代碼,它完美的作品:
public class IncomingCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String incomingNumber = null ;
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING))
{
// Ringing state
// Phone number
incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Log.i("test2", incomingNumber);
SharedPreferences myPrefs = context.getSharedPreferences("myPrefs",Context.MODE_WORLD_WRITEABLE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("Incomingnumber", incomingNumber);
//Not forgot to commit.
prefsEditor.commit();
}
else if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_OFFHOOK))
{
//get the incoming number
SharedPreferences myPrefs = context.getSharedPreferences("myPrefs",Context.MODE_WORLD_READABLE);
String incomNumber = myPrefs.getString("Incomingnumber", incomingNumber);
// This code will execute when the call is answered
Log.i("test2", incomNumber);
Toast.makeText(context,incomNumber, Toast.LENGTH_LONG).show();
}
但是: 我的問題,我的代碼可以顯示敬酒時,用戶只需Accept
來電。
所以,我需要知道我怎麼能檢測接聽來電年底做別的事情(顯示一個警告對話框或啓動一個活動)
如何在撥出呼叫斷開連接時取得烤麪包中的數字? – Aditya