Перейти к содержанию
Fire Monkey от А до Я

OnePeople

Пользователи
  • Постов

    363
  • Зарегистрирован

  • Посещение

  • Победитель дней

    64

Весь контент OnePeople

  1. а в Яве он разворачивается в целую процедуру, какую процедуру!? Callback это ответный метод, вы так сказать подсоединяетесь к нему Callback.onAvailable := NetworkonAvailable; и каждый раз когда платформа подключается и объявляет новую сеть готовой к использованию(onAvailable) будет вызываться процедура, которую вам необходимо объявить и описать дальнейшие действия procedure NetworkonAvailable(network: JNetwork); begin // end;
  2. onMouseDown := (Self.Parent as TFrame6).imgMouseDown;
  3. TFrame1.imgMouseDown; Может все таки Frame1.imgMouseDown;
  4. NetworkInfo This class was deprecated in API level 29. Callers should instead use the ConnectivityManager.NetworkCallback API to learn about connectivity changes
  5. Base class for NetworkRequest callbacks. Used for notifications about network changes. Should be extended by applications wanting notifications. A NetworkCallback is registered by calling Соответственно это класс. Соответственно здесь вы и увидете что происходит с этой сетью вай фай в зависимости от процедур объявленных в этом классе
  6. перегрузок может быть столько сколько у гугла в api, а там их две
  7. Так её и не может быть, попробуйте в Androidapi.JNI.net.wifi заменить JWifiNetworkSpecifier = interface(JObject) на JWifiNetworkSpecifier = interface(JNetworkSpecifier)
  8. А вы пробовали "BorderStyle необходимо оставить Sizeable"
  9. И не забудьте добавить проверку на версию API, так как тот API только для android 10.
  10. А нет, могу помочь сейчас, как вы ищите не понимаю https://github.com/AndrewEfimov/Wrappers/blob/master/Androidapi.JNI.net.wifi.pas
  11. https://delphifmandroid.blogspot.com/2014/07/java.html здесь все написанно в конце статьи пример, написал бы вам pas, да компьютера под рукой нет;)
  12. Здесь все зависит от того, как сделано в android. Следовательно вам всегда в первую очередь нужно смотреть справку developer.android.com. Все что ниже это то как делаю я, не истина, так как мне для хобби достаточно. На примере 1. JConnectivityManager. Захожу в справку, ищу JConnectivityManager, открываю пример работы с API. Вижу код: ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); Начинаю переписывать на Delphi (паскале, не считаю) и вижу что getSystemService возвращает JObject. Если мы получаем не определенный объект то нам нужно сопоставить его с определенным классом, так сказать объект обернуть в класс НАШКЛАСС.ОБЕРНУТЬ(ИД_ОБЪЕКТА) TJConnectivityManager.Wrap((ConnectivityServiceNative as ILocalObject).GetObjectID); Если же объект создается методом new, тогда мы можем просто использовать init, create. (В чем разница я не знаю AudioFocusRequest:=TJAudioFocusRequest_Builder.JavaClass.init(TJAudioManager.JavaClass.AUDIOFOCUS_GAIN); AudioFocusRequest:=TJAudioFocusRequest_Builder(TJAudioManager.JavaClass.AUDIOFOCUS_GAIN).Create; Я пользуюсь обоими видами конструкцию, но предпочитаю init ) 2.Захожу в справку, ищу JWifiNetworkSpecifier, вижу Apps should use the WifiNetworkSpecifier.Builder class to create an instance. Соответственно Network specifier object создается строителем, перехожу дальше в WifiNetworkSpecifier.Builder, смотрю там и так далее. Есть всякие костыли и идеи людей решающие многие проблемы, но я вам так скажу у вас не будет проблем если вы будете делать так как вам советует гугл, а если и будут, то на китайских устройствах где по какой то причине китайцы просто что то сломали в системе и заменили это своим хламом не отвечающим требованиям гугл(Обычно телефон и BT). Единственная помарка, в Delphi бывает отсутствует все API, и некоторые вещи, вообще не реализованы, но их очень мало и они очень специфические. .
  13. WifiNetworkSpecifier.Builder builder = new WifiNetworkSpecifier.Builder(); builder.setSsid("wifi-ap-ssid"); builder.setWpa2Passphrase("wifi-ap-password"); Вот это добавлено только для API 29 и выше NetworkSpecifierObj:= TAndroidHelper.Context.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE); NetworkSpecifier:= TJNetworkSpecifier.Wrap((NetworkSpecifierObj as ILocalObject).GetObjectID); Чушь полная, вы запрашиваете сервис соединений ConnectivityManager, а NetworkSpecifier это абстрактный класс он не создается вообще его получают от другого API. WifiNetworkSpecifier и NetworkSpecifier это разные вещи, вам нужен именно WifiNetworkSpecifier. var ConnectivityManagerNative: JObject; ConnectivityManager: JConnectivityManager; NetworkRequest_Builder: JNetworkRequest_Builder; NetworkRequest: JNetworkRequest; WifiNetworkSpecifier: JWifiNetworkSpecifier; WifiNetworkSpecifier_Builder: JWifiNetworkSpecifier_Builder; begin WifiNetworkSpecifie_Builder:= TJWifiNetworkSpecifier.JavaClass.init; WifiNetworkSpecifie_Builder.setSsid("wifi-ap-ssid"); WifiNetworkSpecifie_Builder.setWpa2Passphrase("wifi-ap-password"); WifiNetworkSpecifier := WifiNetworkSpecifie_Builder.build; NetworkRequest_Builder := TJNetworkRequest_Builder.JavaClass.init; NetworkRequest_Builder.addTransportType(TJNetworkCapabilities.JavaClass.TRANSPORT_WIFI); NetworkRequest_Builder.setNetworkSpecifier(wifiNetworkSpecifier); NetworkRequest := NetworkRequest_Builder.build; ConnectivityManagerNative := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE); connectivityManager := TJConnectivityManager.Wrap((ConnectivityManagerNative as ILocalObject).GetObjectID); connectivityManager.requestNetwork(NetworkRequest, callback);
  14. Вы можете его даже не создавать TJNetworkCapabilities.JavaClass.TRANSPORT_WIFI
  15. Google. Все Ansi команды поддерживают многобайтовые символы и символы с диакритическим знаком.
  16. А чего вы хотите добиться?
  17. Проблема в том, что это вы решили что должно работать так. Триггеры работают от первого дочернего элемента, т.к. аниматор должен знать, свойство какого компонента должен отрабатывать триггер. Допустим у вас 10 вложений анимации и компонентов как бы последняя анимация узнавала, что именно свойство mouseover этого компонента нужно отрабатывать, а не другого? П.с. вы всегда можете сами все написать и переделать, создать свой компонент.
  18. А зачем на экране в целом? Всплывающая информация будет в отдельной форме? Если нет то LocalToAbsolute Если да то LocalToAbsolute.position.x + form.left и LocalToAbsolute.position.y + form.top
  19. TTelephonyManager_UssdResponseCallback = class(TJavaLocal, JTelephonyManager_UssdResponseCallbackClass) procedure onReceiveUssdResponse(TelephonyManager: JtelephonyManager; request: JString; response: JCharSequence); cdecl; var TelephonyManager: JTelephonyManager; TelephonyManagerNative: JObject; ResponceCallBack: JTelephonyManager_UssdResponseCallback; handler: JHandler; begin TelephonyManagerNative := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); TelephonyManager := TJTelephonyManager.Wrap((TelephonyManagerNative as ILocalObject).GetObjectID); ResponceCallBack := TJTelephonyManager_UssdResponseCallback.JavaClass.init; handler := TJHandler.JavaClass.init; TelephonyManager.sendUssdRequest(StringToJString('*100#'), ResponceCallBack, handler); Дальше сами
  20. ну да, это не мое решение так разделить, написал на скорую для Вас function checkNetwork: Boolean; var ConnectivityServiceNative: JObject; cm: JConnectivityManager; activeNetwork: JNetworkInfo; begin try // подключаемся к сервису (в данном случае соединений) ConnectivityServiceNative := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE); // если не подключились то выход c результататом функции FALSE if not Assigned(ConnectivityServiceNative) then exit(false); // получаем менеджер соединений cm := TJConnectivityManager.Wrap((ConnectivityServiceNative as ILocalObject).GetObjectID); // если не получили то выход c результататом функции FALSE if not Assigned(Result) then exit(false); // запрашиваем информацию о активном соединении activeNetwork := cm.getActiveNetworkInfo; // если есть информация и статус соединения подключено то результат функции TRUE Result := Assigned(ActiveNetwork) and ActiveNetwork.isConnected; except // при любой ошибке выход c результататом функции FALSE Exit(false); end; end;
  21. ??? Это одна функция checkNetwork возвращает есть интернет или нет
  22. Для API >= 14 и API < 29 Intent := TJIntent.Create(); Intent.setAction(TJIntent.JavaClass.ACTION_INSTALL_PACKAGE); Intent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); Intent.putExtra(TJIntent.JavaClass.EXTRA_NOT_UNKNOWN_SOURCE, true); Intent.setDataAndType(ApkUri,StringToJString('application/vnd.android.package-archive')); TAndroidHelper.Activity.StartActivity(Intent); API > 25 Manifest.permission.REQUEST_INSTALL_PACKAGES
×
×
  • Создать...