android红外线开发实例,Android实例-红外线操作(XE10.2+小米5)

1 unitUnit1;2

3 interface

4

5 uses

6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,7 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,8 FMX.Controls.Presentation, FMX.StdCtrls,9 Androidapi.Helpers,//需要引入

10 AndroidAPI.jni.OS,//需要引入

11 Androidapi.JNIBridge, //12 Androidapi.JNI.GraphicsContentViewText,13 Androidapi.JNI.JavaTypes,14 FMX.Helpers.Android; //15

16 type

17 TForm1 = class(TForm)18 Button1: TButton;19 procedureButton1Click(Sender: TObject);20 private

21 {Private declarations}

22 public

23 {Public declarations}

24 end;25 type

26 JConsumerIrManager_CarrierFrequencyRange = interface;27

28 JConsumerIrManager_CarrierFrequencyRangeClass = interface(JObjectClass)29 [‘{191A7F08-B93B-40D4-9B6E-3D908B37578E}‘]30 {class} function init(min, max: Integer): JConsumerIrManager_CarrierFrequencyRange; cdecl;31 end;32

33 [JavaSignature(‘android/hardware/ConsumerIrManager$CarrierFrequencyRange‘)]34 JConsumerIrManager_CarrierFrequencyRange = interface(JObject)35 [‘{5AC0C73D-9DA2-49B0-A072-55EA03FE3B78}‘]36 function getMaxFrequency: Integer; cdecl;37 function getMinFrequency: Integer; cdecl;38 end;39 TJConsumerIrManager_CarrierFrequencyRange = class(TJavaGenericImport) end;40

41 JConsumerIrManagerClass = interface(JObjectClass)42 [‘{C8AB7EEA-046F-429C-8585-EF69EBB53718}‘]43 end;44

45 [JavaSignature(‘android/hardware/ConsumerIrManager‘)]46 JConsumerIrManager = interface(JObject)47 [‘{FF469731-5B57-46AB-9C83-4FB51CA6F2BA}‘]48 function getCarrierFrequencies: TJavaArray; cdecl;49 function hasIrEmitter: Boolean; cdecl;50 procedure transmit(carrierFrequency: Integer; pattern: TJavaArray); cdecl;51 end;52 TJConsumerIrManager = class(TJavaGenericImport) end;53

54

55 var

56 Form1: TForm1;57

58 implementation

59

60 {$R *.fmx}

61 function MakeJavaIntArray(arr: array of Integer): TJavaArray;62 var

63 I: Integer;64 begin

65 Result := TJavaArray.Create(Length(arr));66 for I := Low(arr) to High(arr) do

67 Result.Items[I] :=arr[I];68 end;69

70

71 procedureTForm1.Button1Click(Sender: TObject);72 var

73 mCIR: JConsumerIrManager;74 mRanges: TJavaArray;75 mRange: JConsumerIrManager_CarrierFrequencyRange;76 I, DesiredFrequency: Integer;77 HasDesiredFrequency: Boolean;78 begin

79 mCIR :=TJConsumerIrManager.Wrap((SharedActivityContext.getSystemService(TJContext.JavaClass.CONSUMER_IR_SERVICE)80 asILocalObject).GetObjectID);81 if mCIR.hasIrEmitter then

82 begin

83 //use mCIR as needed...

84

85 DesiredFrequency := 3800;86 HasDesiredFrequency :=False;87

88 mRanges :=mCIR.getCarrierFrequencies;89 for I := 0 to mRanges.Length-1 do

90 begin

91 mRange :=mRanges.Items[I];92 if (DesiredFrequency >= mRange.getMinFrequency) and (DesiredFrequency <= mRange.getMaxFrequency) then

93 begin

94 HasDesiredFrequency :=True;95 Break;96 end;97 end;98

99 if HasDesiredFrequency then

100 mCIR.transmit(DesiredFrequency, MakeJavaIntArray([8950,4350,650,500,600,500,550,600,550,550,600,500,550,550,600,550,600,500,550,1650,600,1600,650,1600,550,1700,600,1600,600,1600,600,1650,600,1600,650,1600,550,1650,650,1600,600,550,550,550,550,550,550,550,600,500,600,550,550,550,550,550,550,1650,650,1600,600,1600,600,1650,600,1600,600])); //pattern values here

101 end;102 end;103

104 end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值