MainForm.pas 5.8 KB
Newer Older
cz_012273's avatar
cz_012273 已提交
1
unit MainForm;
cz_012273's avatar
cz_012273 已提交
2 3 4 5 6 7 8

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
  FMX.Edit, FMX.Controls.Presentation,FMX.Platform.Android, FMX.Layouts,
cz_012273's avatar
cz_012273 已提交
9
  Androidapi.JNI.Os,System.Permissions, System.IOUtils,FMX.ListBox;
cz_012273's avatar
cz_012273 已提交
10 11

type
cz_012273's avatar
cz_012273 已提交
12
  TToolsForm = class(TForm)
cz_012273's avatar
cz_012273 已提交
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
    Header: TToolBar;
    Footer: TToolBar;
    HeaderLabel: TLabel;
    ScaledLayout1: TScaledLayout;
    Label2: TLabel;
    Button2: TButton;
    Button1: TButton;
    Edit2: TEdit;
    Edit1: TEdit;
    Label1: TLabel;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    ComboBox1: TComboBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TakePicturePermissionRequestResult(Sender: TObject; const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>);
    procedure DisplayRationale(Sender: TObject; const APermissions: TArray<string>; const APostRationaleProc: TProc);
    procedure ComboBox1Change(Sender: TObject);
cz_012273's avatar
cz_012273 已提交
36
    procedure FormShow(Sender: TObject);
cz_012273's avatar
cz_012273 已提交
37 38 39 40 41 42 43 44 45

  private
    { Private declarations }

  public
    { Public declarations }
  end;

var
cz_012273's avatar
cz_012273 已提交
46
  ToolsForm: TToolsForm;
cz_012273's avatar
cz_012273 已提交
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
  FPermissionReadExternalStorage,FPermissionWriteExternalStorage: string;   //申请权限用


implementation

{$R *.fmx}
{$R *.LgXhdpiPh.fmx ANDROID}

uses
  Androidapi.JNI.GraphicsContentViewText,Androidapi.Helpers,Androidapi.JNI.Net,Androidapi.JNI.javatypes,Androidapi.JNI.app,
  Androidapi.JNI.Provider,Androidapi.JNIBridge,Androidapi.JNI.Location,unit1,unit2;

var
  urlstr:string;

cz_012273's avatar
cz_012273 已提交
62
procedure TToolsForm.Button1Click(Sender: TObject);
cz_012273's avatar
cz_012273 已提交
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
var
    Intent:JIntent;

begin


  if edit1.text='www.baidu.com' then
    urlstr:=edit1.text+'/s?&wd='+edit2.text
  else
    urlstr:=edit1.text;

  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,TJnet_Uri.JavaClass.parse(StringToJString('https://'+ urlstr)));
  Intent.setPackage(StringToJString('com.android.browser')); //设置包名;
  TAndroidHelper.Activity.startActivity(Intent);
end;

cz_012273's avatar
cz_012273 已提交
79
procedure TToolsForm.Button2Click(Sender: TObject);
cz_012273's avatar
cz_012273 已提交
80 81 82 83 84
begin
   edit1.text:='';
   edit2.text:='';
end;

cz_012273's avatar
cz_012273 已提交
85
procedure TToolsForm.Button3Click(Sender: TObject);
cz_012273's avatar
cz_012273 已提交
86 87 88 89 90 91 92 93 94 95 96 97
var
    Intent:JIntent;
    healthcodeurl:string;
begin

  healthcodeurl:= 'https://mbd.baidu.com/ma/s/KW7UJIhQ';

  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,TJnet_Uri.JavaClass.parse(StringToJString(healthcodeurl)));
  Intent.setPackage(StringToJString('com.baidu.searchbox')); //设置包名;
  TAndroidHelper.Activity.startActivity(Intent);
end;

cz_012273's avatar
cz_012273 已提交
98
procedure TToolsForm.Button4Click(Sender: TObject);
cz_012273's avatar
cz_012273 已提交
99 100 101 102 103 104
begin
   form1.show;
end;



cz_012273's avatar
cz_012273 已提交
105
procedure TToolsForm.Button5Click(Sender: TObject);
cz_012273's avatar
cz_012273 已提交
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
//var
    //Intent:JIntent;
    //userstr:string;
begin

   form2.show;
   {
  userstr:= edit1.text;
  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,TJnet_Uri.JavaClass.parse(StringToJString(userstr)));
  Intent.setPackage(StringToJString('com.android.browser')); //设置包名;
  TAndroidHelper.Activity.startActivity(Intent);
  }
  {
  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,TJnet_Uri.JavaClass.parse(StringToJString(BWLstr)));
  Intent.setPackage(StringToJString('com.example.android.notepad')); //设置包名;
  TAndroidHelper.Activity.startActivity(Intent);
  }


end;
cz_012273's avatar
cz_012273 已提交
126 127

procedure TToolsForm.ComboBox1Change(Sender: TObject);
cz_012273's avatar
cz_012273 已提交
128 129 130 131
begin
  edit1.text:=combobox1.items[combobox1.itemindex];
end;

cz_012273's avatar
cz_012273 已提交
132
procedure TToolsForm.FormCreate(Sender: TObject);
cz_012273's avatar
cz_012273 已提交
133 134 135 136 137
{var
  cursor: JCursor;  //读浏览器书签用
  ContentResolver:JContentResolver; }

begin
cz_012273's avatar
cz_012273 已提交
138 139


cz_012273's avatar
cz_012273 已提交
140 141 142 143 144 145 146 147 148 149
{$IFDEF ANDROID}
  FPermissionReadExternalStorage := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE);
  FPermissionWriteExternalStorage := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE);
{$ENDIF}
PermissionsService.RequestPermissions([FPermissionReadExternalStorage, FPermissionWriteExternalStorage], TakePicturePermissionRequestResult, DisplayRationale);

//ContentResolver :=TAndroidHelper.Activity.getContentResolver();
//cursor := ContentResolver.query(StrToJURI('Browser.BOOKMARKS_URI'), Browser.HISTORY_PROJECTION, whereClause, null, orderBy);

end;
cz_012273's avatar
cz_012273 已提交
150 151 152 153 154 155 156 157
procedure TToolsForm.FormShow(Sender: TObject);
var
  favoritefile:string;
begin
  favoritefile:=System.IOUtils.Tpath.GetSharedDocumentsPath +'/myfavorite/myfavorite.txt';
  combobox1.items.loadfromfile(favoritefile);  //从文件读取收藏网址列表
end;

cz_012273's avatar
cz_012273 已提交
158 159 160 161
procedure RequestPermissionsResult(Sender: TObject; const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>);
begin

end;
cz_012273's avatar
cz_012273 已提交
162
procedure TToolsForm.TakePicturePermissionRequestResult(Sender: TObject; const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>);
cz_012273's avatar
cz_012273 已提交
163 164 165 166 167 168 169 170 171 172 173 174
begin

 // 申请的2个权限: READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE
  if (Length(AGrantResults) = 2) and (AGrantResults[0] = TPermissionStatus.Granted) and (AGrantResults[1] = TPermissionStatus.Granted)  then
  begin
    //权限被用户允许的代码
  end
  else
    //权限被用户禁止的代码
    ShowMessage('权限受限,程序不能正常运行!')

end;
cz_012273's avatar
cz_012273 已提交
175
procedure TToolsForm.DisplayRationale(Sender: TObject; const APermissions: TArray<string>; const APostRationaleProc: TProc);
cz_012273's avatar
cz_012273 已提交
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
var
  I: Integer;
  RationaleMsg: string;
begin
  for I := 0 to High(APermissions) do
  begin
    if APermissions[I] = FPermissionReadExternalStorage then
      RationaleMsg := RationaleMsg + '应用需要读文件' + SLineBreak + SLineBreak
    else if APermissions[I] = FPermissionWriteExternalStorage then
      RationaleMsg := RationaleMsg + '应用需要写文件';
  end;

  ShowMessage(RationaleMsg)

end;


end.