내 애플리케이션에서 발신 및 수신 전화 및 텍스트 전에 사용자에게 확인을 요청하는 알림 또는 그 종류의 것을 생성해야합니다. 나는 NEW_OUTGOING_CALL
으로 끝났으며 나는 단지 Toast
msg를 사용할 수있다.안드로이드에서 수신 및 발신 전화 및 텍스트보다 먼저 경고 또는 임의의 UI를 생성 할 수 있습니까
답변
당신은 휴대 전화 상태를 듣고 ITelephone.aidl과 장소 이벤트를 사용할 수 있습니다. 전화 통화 처리 (전화 걸기 방법에 대한 간략한 설명 포함)에 도움을 드리고자합니다. SMS도 비슷한 방식으로 발생합니다. 당신이 원하는 무엇을 더 설명하고 당신이했던 연구하고 그것을
import com.android.internal.telephony.ITelephony;
import android.os.IBinder;
import android.widget.Toast;
import android.telephony.TelephonyManager;
import android.telephony.PhoneStateListener;
public class CallMonitor
{
protected StateListener phoneStateListener;
//stops the service to monitor any call.
public void stopMonitor()
{
try
{
TelephonyManager telephonymanager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
telephonymanager.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE);
phoneStateListener=null;
Toast.makeText(this, "Call Monitoring Stopped", Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
}
}
public void startMonitor()
{
try
{
phoneStateListener = new StateListener();
TelephonyManager telephonymanager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
telephonymanager.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
Toast.makeText(this, "Call Monitoring Started", Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
e.printStackTrace();
}
}
@Override
public IBinder onBind(Intent arg0)
{
return null;
}
class StateListener extends PhoneStateListener
{
@Override
public void onCallStateChanged(int state, String incomingNumber)
{
super.onCallStateChanged(state, incomingNumber);
switch(state)
{
case TelephonyManager.CALL_STATE_RINGING:
Context context = getApplicationContext();
try
{
TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
Class c = Class.forName(manager.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephony = (ITelephony)m.invoke(manager);
telephony.endCall();
}
catch(Exception e)
{
Toast.makeText(context, "Error ending the call" + e.getMessage(), Toast.LENGTH_LONG).show();
}
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_IDLE:
break;
}
}
};
}
권한에 대해 알아
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
kishu 도움을 많이 주셔서 감사합니다. 그러나 BroadcastReceiver를 사용하여보다 효율적으로 작업했습니다. – Kishore
@Kishore를 알려 주셔서 감사합니다. 정확히 무엇이 BroadcastReceiver의 효율성을 확신하게되었는지 이해할 수 있습니까? 내 응용 프로그램에서는이 코드를 사용하여 1/4 초 동안 전화벨이 울리도록 처리합니다. 너는 무엇을 관찰 했는가? – kishu27
늦게 답장을 드려 죄송합니다 ... 실제로 BroadcastReceiver의 프로세스는 작업을 수행하기 전에 해당 메시지를 각각 브로드 캐스트합니다. 따라서 BroadcastReceiver는 동작이 수행되기 전에 트리거됩니다. 따라서 호출하기 전에 호출을 처리 할 수 있습니다. – Kishore
나는이 분야에서 일 해본 적이 없지만 PhoneStateListener 인터페이스를 사용할 수 있습니다. 전화 상태가 변경되면 기능을 호출합니다 .... Telephony Manager도 유용 할 수 있습니다.
도움이 내 옆에 희망에서 불과 시도
,- 1. 기록 통화 안드로이드에서 발신 및 수신 전화
- 2. 기본 안드로이드 수신 및 발신 전화 화면 교체
- 3. 안드로이드에서 수신/발신 SMS 차단하기
- 4. 수신 및 발신 SMS 감지하기
- 5. 전화 통신 관리자를 사용하여 BR로 수신 및 발신 통화 기록
- 6. 별표와 녹음 및 수신 전화
- 7. 안드로이드에서 수신 또는 발신 통화 중 전화를 녹음 할 수 있습니까?
- 8. 안드로이드에서 수신/발신 SMS 알림을 사용하지 않음
- 9. mp3로 기록/모니터 별표 수신/발신 전화
- 10. 트위스트로 발신 및 수신 연결 구분
- 11. 수신 및 발신 통화 데이터를 캡처하는 방법은 무엇입니까?
- 12. iPhone CFSocket 수신/발신 메시지
- 13. 안드로이드 발신 전화 녹음
- 14. 수신 전화 및 SMS 수신시 핸들 타이머
- 15. Android 및 SMS 수신
- 16. 어떻게 안드로이드에서 이러한 UI를 구성 할 수 있습니까?
- 17. 수신 전화 별도 수신기
- 18. 발신 전화 걸기
- 19. 발신 전화와 SMS를 추적 할 수 있습니까?
- 20. PhoneStateListener에서 발신 전화 감지
- 21. 안드로이드의 수신 전화 유형
- 22. 발신 전화 상태
- 23. 어떻게 안드로이드에서 다음 UI를 만들 수 있습니까?
- 24. 도시 이름 및 국가 전화 번호 수신 이름?
- 25. jQuery에서 생성, 변경 및 삭제 이벤트 수신
- 26. CRM의 이메일 활동에서 발신 주소 및 수신 주소 설정
- 27. 안드로이드에서 스레드 생성 및 삭제
- 28. 안드로이드에서 발신 SMS/MMS를 계산하십시오.
- 29. 발신 전화 수 (2.2 이상)를 계산하십시오.
- 30. iOS 수신 전화 화면을 바꿀 수 있습니까?
입니다 수 있다면 가장 좋은 것입니다. 일반적인 경로는 브로드 캐스트 리시버를 사용하는 것입니다. 그러나 사용자가 다른 작업을 할 때 사용자 지정 UI를 표시하면 일반적으로 매우 나쁜 생각입니다. – Snicolas
난 그냥 사용자가 처음부터 사용자가 걸리는 특정 번호로 전화를 걸고 싶은지 재확인하라고하고 싶습니다. 그리고 나가는 호출에서 내 응용 프로그램을 여는 데 broadcastreceiver를 사용했지만 일시 중지 할 수 없었습니다. 전화 프로세스 ... 도와주세요. – Kishore