我在Android设备上的推送通知中的小图标有问题。图标显示黑色。
我已按照本文中pudnivec74指示的步骤操作,如何使用DELPHI在Android设备上的通知中更改小图标图像,它可以工作,但仅在应用程序运行时,当应用程序关闭时,图标静止图像仍显示为黑色。
我还在文件AndroidManifest.template.xml中添加了以下几行:
<meta-data android: name = "com.google.firebase.messaging.default_notification_icon" android: resource = "@ drawable / ic_notification" />
并保持不变。
有人知道解决方案吗?
这是我使用的代码:
procedure TFrmMain.FormCreate(Sender: TObject);
begin
try
{$IF DEFINED(ANDROID)}
APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
APushService.AppProps[TPushService.TAppPropNames.GCMAppID] :=UResource.NUMEROPROYECTOANDROID;
{$ELSE}
APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS);
{$ENDIF}
AServiceConnection := TPushServiceConnection.Create(APushService);
AServiceConnection.Active := True;
{$IF DEFINED(ANDROID)}
AServiceConnection.OnReceiveNotification := OnReceiveNotificationPushAndroid;
{$ELSE}
AServiceConnection.OnReceiveNotification := OnReceiveNotificationPushiOS;
{$ENDIF}
VKAutoShowMode := TVKAutoShowMode.Always;
except on E: Exception do
end;
end;
procedure TFrmMain.OnReceiveNotificationPushAndroid(Sender: TObject;
const ANotification: TPushServiceNotification);
var
{$IFDEF ANDROID}
Ntf: JNotification;
ntfBuilder: JNotificationCompat_Builder;
ntfManager: JNotificationManager;
{$ENDIF} …Run Code Online (Sandbox Code Playgroud) 我正在创建一个多设备FireMonkey应用程序,我想在选择TListBox项目时更改它的颜色.
如何在Rad Studio XE7中完成?
我想在delphi中尝试这样做,当你按下按钮时,我会显示一个下拉面板,其中包含以下选项:

有谁知道如何使用VCL产生这种效果?现在我有一个带有2个面板的表格,主要是总是显示并有一个侧面按钮,当我按下按钮时,侧面板显示,但我想产生效果.谢谢
我需要通过 TCP 协议从 Windows 向移动设备、iOS 和 Android 发送一个大的 Base64 字符串。
我发送和接收没有问题,但是字符串大小太大,大约 24000 个字符,我正在寻找压缩和解压缩这些字符串的方法。
看起来,最好的方法是使用 Zlib,我发现这些链接Delphi XE 和 ZLib Problems (II)其中解释了如何做到这一点。
这些函数适用于普通文本字符串,但压缩 Base64 字符串会使它们变得更大。
我要发送的一个非常小的字符串的示例如下:
我需要帮助。
我使用的功能是这样的:
uses
SysUtils, Classes, ZLib, EncdDecd;
function CompressAndEncodeString(const Str: string): string;
var
Utf8Stream: TStringStream;
Compressed: TMemoryStream;
Base64Stream: TStringStream;
begin
Utf8Stream := TStringStream.Create(Str, TEncoding.UTF8);
try
Compressed := TMemoryStream.Create;
try
ZCompressStream(Utf8Stream, Compressed);
Compressed.Position := 0;
Base64Stream := TStringStream.Create('', TEncoding.ASCII);
try
EncodeStream(Compressed, Base64Stream);
Result := Base64Stream.DataString;
finally
Base64Stream.Free;
end;
finally
Compressed.Free;
end;
finally
Utf8Stream.Free;
end;
end; …Run Code Online (Sandbox Code Playgroud) 我有这个 curl 序列,它在 MS Windows 中工作,我试图在 Delphi XE 10.1 Berlin 中使用与 Indy 的等效项。
卷曲代码是这样的:
curl -k "https://fakeweb.com/options" --data-binary "{\"name\":\"Name of the Client\",\"email\":\"fake@gmail.com\"}"
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下代码,但它不起作用
procedure TForm2.Button4Click(Sender: TObject);
const
COMI = Char(34);
var
data: string;
DataToSend : TStringStream;
IdHTTP: TIdHTTP;
Answer: string;
begin
try
data := '{\' + COMI + 'name\' + COMI + ':\' + COMI + 'Name of the Client\' + COMI +
',\' + COMI + 'email\' + COMI + ':\' + COMI + 'fake@gmail.com\' + COMI + '}' …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 Rad Studio XE7 for android 中制作的应用程序上读取来自其他应用程序的通知。抬头一看,发现在java中可以访问NotificationListenerService,但是如果用delphi可以访问这个服务就不行了。可以做到吗?