-
Постов
326 -
Зарегистрирован
-
Посещение
-
Победитель дней
57
Сообщения, опубликованные OnePeople
-
-
-
Если будете загружать файл в deployment тогда ваша база будет здесь
Для remote path: assets\internal
TPath.Combine(TPath.GetDocumentsPath, 'filename') { Internal }
Для remote path: assets
TPath.Combine(TPath.GetPublicPath, 'filename') { External }
Есть же в конце то концов https://docwiki.embarcadero.com/RADStudio/Sydney/en/Creating_an_Android_App#Loading_and_Deploying_Files
-
Ну согласно перевода вы не можете запускать исполняемые файлы из папки своего приложения, и вы не можете изменять код библиотек .so из своего приложения. Оно вам зачем?
-
if TJBuild_VERSION.JavaClass.SDK_INT >= 26 then begin playbackAttributes := TJAudioAttributes_Builder.Create .setUsage(TJAudioAttributes.JavaClass.USAGE_MEDIA) .setContentType(TJAudioAttributes.JavaClass.CONTENT_TYPE_MUSIC) .build(); AudioFocusRequest:=TJAudioFocusRequest_Builder(TJAudioManager.JavaClass.AUDIOFOCUS_GAIN).Create .setAudioAttributes(playbackAttributes) .setAcceptsDelayedFocusGain(true) .setOnAudioFocusChangeListener(afChangeListener, afHandler) .build(); res := FAudioManager.requestAudioFocus(AudioFocusRequest); end else begin res := FAudioManager.requestAudioFocus(afChangeListener, TJAudioManager.JavaClass.STREAM_MUSIC, TJAudioManager.JavaClass.AUDIOFOCUS_GAIN); end;
-
Да зависит, вам скинуть код?
-
Вам нужно создать контрол на основе нативного вида как реализовано например здесь https://github.com/Zeus64/alcinoe/blob/master/source/ALFmxEdit.pas ,тогда вы сможете назначить ему идентификатор ресурса.
-
5 часов назад, Lev сказал:
не увидел альтернативу воспроизведения звука
Вариантов масса, BASS, стандартный android MediaPlayer, сторонние библиотеки все зависит от того какая платформа, какой файл короткий, длинный, что вы хотите кроме воспроизведения и т.д.
-
13 часов назад, Sascha сказал:
Как одновременно изменить Position.X и Position.Y, чтобы использовать их в AnimateFloatWait?
TAnimator.AnimateFloat(Image1, 'Position.X', P.X, Time); TAnimator.AnimateFloatWait(Image1, 'Position.Y', P.Y, Time, Timewait);
Не проверял уже давно, но в андроид не работало, в Windows точно работает,
я делаю так, в особых случаях
Внимание костыль!
TTask.Run(procedure() begin TThread.Synchronize(nil, procedure() begin TAnimator.AnimateFloat(Image1, 'Position.X', P.X, Time); TAnimator.AnimateFloat(Image1, 'Position.Y', P.Y, Time); end); sleep(Time); TThread.Synchronize(nil, procedure() begin после анимации идет важная процедура) end); end);
-
Нашел времени немного, у себя сделал так, нахожу все сети, заполняю ими ListView, при нажатии на item вызываю ConnectToWifi(ssid, bsid, password: String) а вы какой хотите велосипед такой и изобретайте
1.JWifiNetworkSpecifier = interface(JObject) оставляем!
2.
procedure ConnectToWifi(ssid, bsid, password: String); var ConnectivityManagerNative: JObject; ConnectivityManager: JConnectivityManager; NetworkRequest_Builder: JNetworkRequest_Builder; NetworkRequest: JNetworkRequest; WifiNetworkSpecifier: JWifiNetworkSpecifier; WifiNetworkSpecifier_Builder: JWifiNetworkSpecifier_Builder; WiFicallback: JConnectivityManager_NetworkCallback; begin WifiNetworkSpecifier := TJWifiNetworkSpecifier_Builder.Create .setSsidPattern(TJPatternMatcher.JavaClass.init(StringToJString(ssid), TJPatternMatcher.JavaClass.PATTERN_PREFIX)) .setBssid(TJMacAddress.JavaClass.fromString(StringToJString(bsid))) .setWpa2Passphrase(StringToJString(password)) .build(); NetworkRequest := TJNetworkRequest_Builder.Create .addTransportType(TJNetworkCapabilities.JavaClass.TRANSPORT_WIFI) .removeCapability(TJNetworkCapabilities.JavaClass.NET_CAPABILITY_INTERNET) .setNetworkSpecifier( TJNetworkSpecifier.Wrap((WifiNetworkSpecifier as ILocalObject).GetObjectID)) .build(); WiFicallback := TJConnectivityManager_NetworkCallback.JavaClass.init; ConnectivityManagerNative := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE); connectivityManager := TJConnectivityManager.Wrap((ConnectivityManagerNative as ILocalObject).GetObjectID); connectivityManager.requestNetwork(NetworkRequest, WiFicallback); end;
3. WiFiCallBack это обратный вызов - это класс Java, поэтому вам нужно создать потомка и реализовать необходимые методы. В настоящее время это невозможно сделать в Delphi (хотя listner'ы отлично реализуются), поэтому вам нужно будет сделать это на Java. В коде Java вы можете объявить интерфейс, который может быть передан классу, как в этом примере:
https://github.com/DelphiWorlds/Kastri/blob/master/Features/Connectivity/DW.Connectivity.Android.pas
https://github.com/DelphiWorlds/Kastri/tree/master/Java/Base/Connectivity
-
Так правильно, какая перегрузка метода, который берется с указанием директивы вызова процедур, его нет, а вы сами придумали.
Короче я вас не понимаю, на днях я в своем приложении буду делать схожий функционал, выложу вам код, сейчас ремонт, очень редко за пк(
-
по-библейски я знаю историю языка, но по мне он достаточно ушел по возможностям чтобы его называть Pascal'ем.
20 часов назад, UFO 007 сказал:тут чё писать
Допустим
memo1.lines.add('connect');
Я ни каких велосипедов не изобретаю, поменяйте местами
Callback:= TJConnectivityManager_NetWorkCallback.JavaClass.init;//.Create;
Callback.onAvailable(ConnectivityManager.getActiveNetwork ;
ConnectivityManager.requestNetwork(NetworkRequest, Callback);
21 час назад, UFO 007 сказал:Function NetworkonAvailable(network: JNetwork JNetwork
Разве onAvailable функция??? Мне кажется что нет.
procedure TForm1.NetworkonAvailable(network: JNetwork)
Вот этим можно просто зарегистрировать callback и его метод onAvailable будет каждый раз вызываться при подключении к сети.
ConnectivityManager.registerDefaultNetworkCallback(Callback)
А эта конструкция подключается к сети которая наиболее подходит к параметрам NetworkRequest и callback.onAvailable будет вызываться при подключении именно к этой сети.
ConnectivityManager.requestNetwork(NetworkRequest, Callback);
P.s читайте android developer, ищите ошибки у себя в коде, тестите, выводить в memo логи какие нибудь и смотрите что не работает
-
onMouseDown := (Название формы в main).Frame11.imgMouseDown;
-
22 минуты назад, haword сказал:
Добрый совет - лучше напиши на котлине или джаве, меньше потом проблем будет.
Да для простых приложений это самое быстрое решение, я вам так скажу сейчас уже мало осталось того что не написать на делфи для андроид, дело в том что люди не хотят искать и писать, им нужно чтобы раз и все получилось...
-
а в Яве он разворачивается в целую процедуру, какую процедуру!? Callback это ответный метод, вы так сказать подсоединяетесь к нему
Callback.onAvailable := NetworkonAvailable;
и каждый раз когда платформа подключается и объявляет новую сеть готовой к использованию(onAvailable) будет вызываться процедура, которую вам необходимо объявить и описать дальнейшие действия
procedure NetworkonAvailable(network: JNetwork);
begin
//
end;
-
-
TFrame1.imgMouseDown;
Может все таки
Frame1.imgMouseDown;
-
NetworkInfo
This class was deprecated in API level 29.
Callers should instead use the
ConnectivityManager.NetworkCallback
API to learn about connectivity changes -
Base class for NetworkRequest callbacks. Used for notifications about network changes. Should be extended by applications wanting notifications. A NetworkCallback is registered by calling
Соответственно это класс. Соответственно здесь вы и увидете что происходит с этой сетью вай фай в зависимости от процедур объявленных в этом классе
-
-
-
А вы пробовали "BorderStyle необходимо оставить Sizeable"
-
-
А нет, могу помочь сейчас, как вы ищите не понимаю
https://github.com/AndrewEfimov/Wrappers/blob/master/Androidapi.JNI.net.wifi.pas
-
https://delphifmandroid.blogspot.com/2014/07/java.html
здесь все написанно в конце статьи пример, написал бы вам pas, да компьютера под рукой нет;)
Как вместе с программой установить файл базы данных?
в SQLite
Опубликовано
Обновление файла из assets в папку с программой
Пользоваться так проверяете при Form.Create что версия новая и вызываете UpdateAsset('internal/base.db', ApplicationPath + 'base.db');