1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| unit UniqueIDAndroidU;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
{$IFDEF ANDROID}
AndroidApi.Jni,
AndroidApi.Helpers,
AndroidApi.Jni.JavaTypes,
AndroidApi.JNIBridge,
AndroidApi.Jni.Media,
{$ENDIF}
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Memo.Types,
FMX.StdCtrls, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
function BytesToHex(const ABytes: TBytes): string;
var
I: Integer;
begin
Result := '';
for I := Low(ABytes) to High(ABytes) do
Result := Result + IntToHex(ABytes[I], 2);
end;
function get_media_drm_UNIQUE_ID:string;
var
wvDrm:JMediaDrm;
str:String;
UUID:JUUID;
data : TJavaArray<Byte>;
datab: TBytes;
i:integer;
begin
//UUID:=TJUUID.JavaClass.fromString(stringtojstring('12107456-8629-b532-5c37-d8232ae2de13')); //EJNIException with message 'android.media.UnsupportedSchemeException: Failed to instantiate drm object.
UUID:=TJUUID.JavaClass.fromString(stringtojstring('edef8ba9-79d6-4ace-a3c8-27dcd51d21ed'));//widevine_id
wvDrm:=tJMediaDrm.Create;
wvDrm:=tJMediaDrm.JavaClass.init(UUID);
data:=wvDrm.getPropertyByteArray( TJMediaDrm.JavaClass.PROPERTY_DEVICE_UNIQUE_ID);
if data <> nil then
begin
SetLength(datab, data.Length);
for I := 0 to data.Length - 1 do
datab[I] := data.Items[I];
str:=BytesToHex(datab);
end;
result:=str;//length of str:64byte
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.add(get_media_drm_UNIQUE_ID);
end;
end. |
Partager