Я начал телефонный звонок активность запроса результата:Android startActivityForResult, setResult, не onActivityResult называется
Intent intentcall = new Intent();
intentcall.setAction(Intent.ACTION_CALL);
intentcall.setData(Uri.parse("tel:" + phoneNumber));
this.startActivityForResult(intentcall, REQUEST_SLIPDROP_ICON_OFF);
А потом установить результат в телефонный звонок слушателя, как это:
private class MyPhoneStateListener extends PhoneStateListener{
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
setResult(Activity.RESULT_OK);
break;
Наконец, я хочу чтобы отключить значок в onActivityResult, но ничего не происходит.
switch (requestCode) {
case REQUEST_SLIPDROP_ICON_OFF:
Log.d("request icon off", "request icon off");
if (resultCode == Activity.RESULT_OK) {
changeMenuItem(R.id.fall, R.drawable.fall);
slipAndDropIconOn = false;
}
break;
Что-то не так? Пожалуйста, порекомендуйте! спасибо
Я использую ACTION_CALL как намерение. Даже это намерение не возвращает никакого результата, но я установил результат явно, так как я слушал состояние телефона со следующим кодом: case TelephonyManager.CALL_STATE_IDLE: setResult (Activity.RESULT_OK); – ksu
ACTION_CALL также не имеет возвращаемого значения. Вы устанавливаете результат в своем слушателе не в активности дозвона. Это действие требует установки результата. У вас нет доступа к этому. Согласно документам, PhoneStateListener не имеет метода setResult. http://developer.android.com/reference/android/telephony/PhoneStateListener.html – Kuffs
Я вижу. Кажется, я понял. Каждый раз, когда я вызываю setResult(), он вызывает вызов onActivityResult(). Но мой код, чтобы отключить значок, не будет выполнен, потому что условие условия REQUEST_SLIPDROP_ICON_OFF: не выполняется. Зачем? Я начал работу с этим запросом. BTW, PhoneStateListener - это внутренний класс активности. Любой другой способ добиться результата, которого я хочу? – ksu