본인인 본문글 주소는 https://kswit.tistory.com/19?category=973345 입니다
제가 따로 만들어둔 플로팅 가사 플로팅 jar파일입니다
※받으신 jar파일은 파이어몽키 안드로이드 라이브러리에 jar파일을 추가하시면 됩니다
우선 플로팅 안드로이드 서비스와 액티비티 양방향 통신 하기 위해 브로드캐스트 리시버를
사용해야 합니다
요약하자면 브로드 캐스트 com.KMSLyric.KMSLyricService <<<에 KMS_Lyric쪽으로 가사 내용 전달합니다
[소스 추가하는 순서]
1. 구글 검색하여 TCSBroadcastRecevier.pas를 다운로드 받습니다.
2. 전역변수에 var BroadcastReceiver: TCSBroadcastReceiver; 추가 하신후
3. BroadcastReceiver.add('com.KMSLyric.KMSLyricService'); // 소스에서 브로드 캐스트 등록 해줍니다
Form1 이라는곳에 선언해서 쓰시면 됩니다 아래처럼 브로드캐스트리시버를 add 추가하여 등록해줍니다
등록하셨으면 procedure TForm1.FormCreate(Sender: TObject); 쪽에 CreateBroadcastReceiver 넣어줍니다
procedure TForm1.CreateBroadcastReceiver;
begin
if not Assigned(BroadcastReceiver) then
begin
BroadcastReceiver:= TCSBroadcastReceiver.Create(nil);
BroadcastReceiver.OnReceive := BroadcastReceiverOnReceive;
BroadcastReceiver.RegisterReceive;
BroadcastReceiver.Add('com.KMSLyric.KMSLyricService');
end;
end;
4. CSBroadcastRecevier.pas 파일을 열어 아래의 제가 제작한 코드를 추가 해줍시다
procedure TCSBroadcastReceiver.SendBroadCastputExtra(InitName, Name, Value: Jstring);
{$IFDEF ANDROID}
var Inx: JIntent;
begin
Inx := TJIntent.JavaClass.init(InitName);
Inx.putExtra(Name,Value);
SharedActivityContext.sendBroadcast(Inx);
{$ELSE}
begin
{$ENDIF}
end;
5. 메인폼으로 돌아가 아래의 코드도 추가적으로 넣어 줍니다
아래의 코드를 보면 com.KMSLyric.KMSLyricService <<에 KMS_Lyric 쪽으로 내용을 전달합니다
procedure BroadcastReceiverFloating(Lyric : string);
begin
BroadcastReceiver.SendBroadCastputExtra(
StringToJString('com.KMSLyric.KMSLyricService'),
StringToJString('KMS_Lyric'),
StringToJString(Lyric));
end;
6. 플로팅 가사 서비스 실행 하기 위해 메인폼에 코드를 넣어 줍니다
플로팅 체크박스 체크 했을때 서비스를 실행하게 됩니다 필요 없다면 체크박스 구간은 지워도 됩니다
var Intent: JIntent;
begin
if CB_Floating.IsChecked then
begin
Intent := TJIntent.JavaClass.init;
Intent.setClassName(SharedActivityContext, StringToJString('com.KMSLyric.KMSLyricService'));
SharedActivity.startService(Intent); // 플로팅 가사 서비스 실행 or stopService(Intent)는 서비스 실행 중지
end;
end;
7. 아래의 코드에서 원하는 가사 내용을 넣어주시면 됩니다.
var TMPLyric : string;
TMPLyric := '가사 플로팅 테스트 입니다.><';
BroadcastReceiverFloating(TMPLyric);
8. 다른 앱 위에 표시 권한 허용 해주셔야 합니다
자 이렇게 해서 정상적으로 가사 플로팅 이용할수 있구요
처음부터 java 코드 짜셨더라면 복잡 하실거라 생각 됩니다
직접 java 코드 빌드 하시고 jar파일 생성해서 위의 과정으로 가셨을겁니다
요약본 입니다
'FireMonkey 예제 자료' 카테고리의 다른 글
안드로이드 DrawLine 깨짐 발생시 간단 해결방법 (0) | 2022.01.18 |
---|---|
파이어몽키 java to pas 및 자바 시그니처 주소 참고용 (0) | 2022.01.18 |
FireMonkey java class patch and jar patch 패치 하기 (0) | 2022.01.14 |
java 최근에 실행된 앱 보기에서 앱 지울시 종료하기 (0) | 2022.01.09 |
파이어몽키[Window,Android] 이미지 리스트 비트맵 추가할수 있게 하는 코드 (0) | 2022.01.05 |
Floating KMS 가사 위젯 java 코드 정리 해드렸습니다 (0) | 2022.01.05 |
java 코드에 리소스 id 얻어오기 (0) | 2022.01.03 |
(영상강의)파이어몽키 Live2D 변환작업 하는방법 (0) | 2022.01.03 |
댓글