Delphi 11 Android 12 文件共享接收指南
Delphi 11 编写 Android 12 接收共享文件内容
要编写一个可以接收共享文件的 Android 应用程序,您可以按照以下步骤操作:
-
在 Delphi 11 中创建一个新的 Android 应用程序项目。
-
添加一个
TButton组件到主窗体上,并在OnClick事件中添加以下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
Intent: JIntent;
Uri: Jnet_Uri;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_GET_CONTENT);
Intent.setType(StringToJString('*/*'));
Intent.addCategory(TJIntent.JavaClass.CATEGORY_OPENABLE);
Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
if Intent.resolveActivity(SharedActivity.getPackageManager) <> nil then
begin
SharedActivity.startActivityForResult(Intent, 0);
end;
end;
此代码将打开一个文件选择器,并允许用户选择要共享的文件。
- 添加以下代码到主窗体的
OnActivityResult事件中:
procedure TForm1.FormActivityResult(requestCode, resultCode: Integer; Data: JIntent);
var
Uri: Jnet_Uri;
ContentResolver: JContentResolver;
InputStream: JInputStream;
BufferedReader: JBufferedReader;
Line: JString;
begin
if (requestCode = 0) and (resultCode = TJActivity.JavaClass.RESULT_OK) then
begin
Uri := Data.getData;
ContentResolver := SharedActivity.getContentResolver;
InputStream := ContentResolver.openInputStream(Uri);
BufferedReader := TJBufferedReader.JavaClass.init(TJInputStreamReader.JavaClass.init(InputStream));
Line := BufferedReader.readLine;
// 处理文件内容
ShowMessage(JStringToString(Line));
BufferedReader.close;
InputStream.close;
end;
end;
此代码将读取并处理用户共享的文件内容。在这个例子中,我们只是显示了文件的第一行。
- 编译和运行您的应用程序,并测试文件共享功能。
注意: 在 Android 11 上,需要在 AndroidManifest.xml 文件中添加以下权限声明以允许您的应用程序访问共享文件:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
原文地址: https://www.cveoy.top/t/topic/n6AH 著作权归作者所有。请勿转载和采集!