Androidアプリで通話終了イベントを取得する方法

過酷なボス:

Android携帯用の小さなアプリを作りました。

ある状況では、解決策が得られません。実際、私のアプリには顧客に電話をかけるための小さな機能があります。

したがって、通話が終了した後、最後の番号がダイヤルされるか、どのアプリが実行されるかというイベントが必要です。

Vinayak Bevinakatti:

AndroidManifest:

<receiver android:name=".PhoneStateBroadcastReceiver">  
       <intent-filter>  
               <action android:name="android.intent.action.PHONE_STATE">       
       </action></intent-filter>  
</receiver> 

次の権限を追加:

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

PhoneStateBroadcastReceiver.java(コードを少しリファクタリング)

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/

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Androidアプリのインテントから電話番号を取得する方法

分類Dev

アプリケーションでVoIP通話ログ情報を取得する方法-コールキット

分類Dev

アプリケーションで組織の作業プロファイルの通話履歴を取得する方法(プライベートアプリとして公開)

分類Dev

AndroidアプリでFacebookイベントを作成する方法は?

分類Dev

AndroidアプリからSkype通話を開始する方法は?

分類Dev

アプリがAndroidでアクティブなときに電話ロックのイベントを取得する

分類Dev

アプリケーションの終了イベントを取得する

分類Dev

Android 4.3で通話ログをクリアする方法は?

分類Dev

Androidソースで通話アプリを入手する

分類Dev

CallKitで通話を終了する方法

分類Dev

twilio通話を途中で終了する方法

分類Dev

Sinchで「グループ通話」を終了する方法

分類Dev

Javaでアプリケーションの終了イベントを処理する方法は?

分類Dev

Guzzle通話でログイン画面を通過する方法

分類Dev

iOSアプリでVoIP通話を中断する着信セルラー通話

分類Dev

イベントベースの設計でAzureBatchを使用し、終了したジョブを終了/クリーンアップする方法

分類Dev

携帯電話でAndroidアプリの寿命を通して変数を保存する方法

分類Dev

デフォルトの通話アプリケーションを使用してAndroidアプリケーションで電話をかける

分類Dev

サードパーティのアプリで許可されていない場合にAndroidで通話を録音する方法とそのアプリがプレイストアに存在する場合

分類Dev

QtAppでモバイルアプリのライフサイクルイベントを取得する方法

分類Dev

Androidで通話履歴を取得する方法

分類Dev

Webアプリでイベントを処理する方法は?

分類Dev

通話でドキュメントの一部のみを取得する方法

分類Dev

React Native-Androidで着信ビデオ通話画面を表示する(VOIPアプリ)

分類Dev

アプリケーションが閉じられたときにリアルタイムで通話/メッセージを受信する方法

分類Dev

インターネットが利用できないときにアプリを終了する方法android

分類Dev

Windows Phone8アプリケーションで通話をトリガーする

分類Dev

Androidで通話を録音する方法

分類Dev

電話でアプリのバージョンを取得する方法

Related 関連記事

  1. 1

    Androidアプリのインテントから電話番号を取得する方法

  2. 2

    アプリケーションでVoIP通話ログ情報を取得する方法-コールキット

  3. 3

    アプリケーションで組織の作業プロファイルの通話履歴を取得する方法(プライベートアプリとして公開)

  4. 4

    AndroidアプリでFacebookイベントを作成する方法は?

  5. 5

    AndroidアプリからSkype通話を開始する方法は?

  6. 6

    アプリがAndroidでアクティブなときに電話ロックのイベントを取得する

  7. 7

    アプリケーションの終了イベントを取得する

  8. 8

    Android 4.3で通話ログをクリアする方法は?

  9. 9

    Androidソースで通話アプリを入手する

  10. 10

    CallKitで通話を終了する方法

  11. 11

    twilio通話を途中で終了する方法

  12. 12

    Sinchで「グループ通話」を終了する方法

  13. 13

    Javaでアプリケーションの終了イベントを処理する方法は?

  14. 14

    Guzzle通話でログイン画面を通過する方法

  15. 15

    iOSアプリでVoIP通話を中断する着信セルラー通話

  16. 16

    イベントベースの設計でAzureBatchを使用し、終了したジョブを終了/クリーンアップする方法

  17. 17

    携帯電話でAndroidアプリの寿命を通して変数を保存する方法

  18. 18

    デフォルトの通話アプリケーションを使用してAndroidアプリケーションで電話をかける

  19. 19

    サードパーティのアプリで許可されていない場合にAndroidで通話を録音する方法とそのアプリがプレイストアに存在する場合

  20. 20

    QtAppでモバイルアプリのライフサイクルイベントを取得する方法

  21. 21

    Androidで通話履歴を取得する方法

  22. 22

    Webアプリでイベントを処理する方法は?

  23. 23

    通話でドキュメントの一部のみを取得する方法

  24. 24

    React Native-Androidで着信ビデオ通話画面を表示する(VOIPアプリ)

  25. 25

    アプリケーションが閉じられたときにリアルタイムで通話/メッセージを受信する方法

  26. 26

    インターネットが利用できないときにアプリを終了する方法android

  27. 27

    Windows Phone8アプリケーションで通話をトリガーする

  28. 28

    Androidで通話を録音する方法

  29. 29

    電話でアプリのバージョンを取得する方法

ホットタグ

アーカイブ