-
Постов
363 -
Зарегистрирован
-
Посещение
-
Победитель дней
64
Весь контент OnePeople
-
а в Яве он разворачивается в целую процедуру, какую процедуру!? Callback это ответный метод, вы так сказать подсоединяетесь к нему Callback.onAvailable := NetworkonAvailable; и каждый раз когда платформа подключается и объявляет новую сеть готовой к использованию(onAvailable) будет вызываться процедура, которую вам необходимо объявить и описать дальнейшие действия procedure NetworkonAvailable(network: JNetwork); begin // end;
-
onMouseDown := (Self.Parent as TFrame6).imgMouseDown;
-
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 Соответственно это класс. Соответственно здесь вы и увидете что происходит с этой сетью вай фай в зависимости от процедур объявленных в этом классе
-
перегрузок может быть столько сколько у гугла в api, а там их две
-
Так её и не может быть, попробуйте в Androidapi.JNI.net.wifi заменить JWifiNetworkSpecifier = interface(JObject) на JWifiNetworkSpecifier = interface(JNetworkSpecifier)
-
А вы пробовали "BorderStyle необходимо оставить Sizeable"
-
И не забудьте добавить проверку на версию API, так как тот API только для android 10.
-
А нет, могу помочь сейчас, как вы ищите не понимаю https://github.com/AndrewEfimov/Wrappers/blob/master/Androidapi.JNI.net.wifi.pas
-
https://delphifmandroid.blogspot.com/2014/07/java.html здесь все написанно в конце статьи пример, написал бы вам pas, да компьютера под рукой нет;)
-
Здесь все зависит от того, как сделано в 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, и некоторые вещи, вообще не реализованы, но их очень мало и они очень специфические. .
-
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);
-
Вы можете его даже не создавать TJNetworkCapabilities.JavaClass.TRANSPORT_WIFI
-
Google. Все Ansi команды поддерживают многобайтовые символы и символы с диакритическим знаком.
-
А чего вы хотите добиться?
-
Проблема в том, что это вы решили что должно работать так. Триггеры работают от первого дочернего элемента, т.к. аниматор должен знать, свойство какого компонента должен отрабатывать триггер. Допустим у вас 10 вложений анимации и компонентов как бы последняя анимация узнавала, что именно свойство mouseover этого компонента нужно отрабатывать, а не другого? П.с. вы всегда можете сами все написать и переделать, создать свой компонент.
-
-
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); Дальше сами
-
- 24 ответа
-
- delphi 10.4.2
- android
-
(и ещё 2 )
C тегом:
-
ну да, это не мое решение так разделить, написал на скорую для Вас 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;
- 17 ответов
-
- delphi
- delphi rio
-
(и ещё 4 )
C тегом:
-
??? Это одна функция checkNetwork возвращает есть интернет или нет
- 17 ответов
-
- delphi
- delphi rio
-
(и ещё 4 )
C тегом:
-
Для 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