본문 바로가기
FireMonkey 예제 자료

FireMonkey Floating(플로팅) 안드로이드 가사 위젯 jar 파일 업로드

by kimsyo11 2022. 1. 8.
728x90

본인인 본문글 주소는 https://kswit.tistory.com/19?category=973345 입니다

 

KMSLyricService(JAR파일).zip
0.01MB

 

제가 따로 만들어둔 플로팅 가사 플로팅 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파일 생성해서 위의 과정으로 가셨을겁니다

 

 

요약본 입니다

 

728x90

댓글