자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 안녕하세요. 안드로이드 전화 끊기 문의 입니다.
2016.12.01 17:33
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
안녕하세요.
문의 내용과 같습니다.
전화걸기1
var
Intent: JIntent;
telNo : String;
begin
telNo := 'tel:' + edTel.Text; // 전화번호
try
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_CALL, TJnet_Uri.JavaClass.parse( StringToJString(telNo) ));
SharedActivity.startActivity(Intent);
finally
end;
전화걸기2
PhoneDialerService.Call(edTel.Text);
위와같이 전화거는 기능은 구현 했지만,
전화 통화 중에 버튼을 클릭하면 전화를 끊을수 있는 기능이 필요 합니다.
자바로 구현하는 방법은 http://wjuni.tistory.com/14
package com.android.internal.telephony;
import android.os.Bundle;
interface ITelephony {
boolean endCall();
void dial(String number);
void answerRingingCall();
}
위기능과 http://victor8481.tistory.com/238
등등 이 있습니다 만,
이걸 Delphi Berlin code로 변환하려니 실력이 딸랍니다.
선배님들 참도될만한 힌트나 자료 부탁 드립니다.
감사합니다.
Firemonkey 안녕하세요. 안드로이드 전화 끊기 문의 입니다.
2016.12.01 17:33
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
안녕하세요.
문의 내용과 같습니다.
전화걸기1
var
Intent: JIntent;
telNo : String;
begin
telNo := 'tel:' + edTel.Text; // 전화번호
try
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_CALL, TJnet_Uri.JavaClass.parse( StringToJString(telNo) ));
SharedActivity.startActivity(Intent);
finally
end;
전화걸기2
PhoneDialerService.Call(edTel.Text);
위와같이 전화거는 기능은 구현 했지만,
전화 통화 중에 버튼을 클릭하면 전화를 끊을수 있는 기능이 필요 합니다.
자바로 구현하는 방법은 http://wjuni.tistory.com/14
package com.android.internal.telephony;
import android.os.Bundle;
interface ITelephony {
boolean endCall();
void dial(String number);
void answerRingingCall();
}
위기능과 http://victor8481.tistory.com/238
등등 이 있습니다 만,
이걸 Delphi Berlin code로 변환하려니 실력이 딸랍니다.
선배님들 참도될만한 힌트나 자료 부탁 드립니다.
감사합니다.
다른분이 시도해 본내용을 첨부 합니다.
http://stackoverflow.com/questions/33266447/how-to-programmatically-reject-hang-up-incoming-call-on-android-in-delphi
function getdeclaredMethod(Cls: Jlang_Class; const Name: JString): JMethod;
var
Arr: TJavaObjectArray<JMethod>;
Meth: JMethod;
I: Integer;
begin
Result := nil;
Arr := Cls.getDeclaredMethods;
for I := 0 to Arr.Length-1 do
begin
Meth := Arr.Items[I];
if Meth.getName.compareTo(Name) = 0 then
begin
Result := Meth;
Exit;
end;
end;
raise Exception.CreateFmt('method not found: %s', [Name]);
end;
var
obj : JObject;
telephonyManager : JTelephonyManager;
classTelephony : Jlang_Class;
methodGetITelephony : JMethod;
telephonyInterface : JObject;
telephonyInterfaceClass : Jlang_Class;
methodEndCall : JMethod;
begin
try
// Get the boring old TelephonyManager
obj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);
telephonyManager := TJTelephonyManager.Wrap((obj as ILocalObject).GetObjectID);
classTelephony := TJlang_Class.JavaClass.forName(telephonyManager.getClass.getName);
methodGetITelephony := getDeclaredMethod(classTelephony, StringToJString('getITelephony'));
JAccessibleObject(methodGetITelephony).setAccessible(True);
//methodGetITelephony.setAccessible(True);
ShowMessage('step 3');
telephonyInterface := methodGetITelephony.invoke(telephonyManager); <------ Error
ShowMessage('step 4');
telephonyInterfaceClass := TJlang_Class.JavaClass.forName(telephonyInterface.getClass.getName);
methodEndCall := getDeclaredMethod(telephonyInterfaceClass, StringToJString('endCall'));
ShowMessage('step 5');
methodEndCall.invoke(telephonyInterface); <---- ERROR
ShowMessage('step 6');
except
on E: Exception do // Many things can go wrong with reflection calls
begin
//
//Result := False;
end;
end;
end;
* invoke Not Define 되어 있다고 나옵니다.
참고만 하세요.