-
Постов
363 -
Зарегистрирован
-
Посещение
-
Победитель дней
64
Весь контент OnePeople
-
12ю
-
Зачем он вам вообще нужен, делайте как говорит гугл, создавайте LocatioListner! Для вас сделал пример, как надо сами допишите. Android.LocationListener.rar
-
Так у меня его нет) Себе делал callback для поиска количества спутников. Пишите на java callback (GnssStatusCallback.rar) Через codex генерируете jar файл, добавляете его себе в проект в Libraries Пишите объявления методов (Androidapi.JNI.GnssStatusCallback.rar) Создаем класс type TGnnsStatusCallbackDelegate = class(TJavaLocal, JGnssStatusCallbackDelegate) private class var FConnectivityManager: JConnectivityManager; private FCallback: JGnssStatusCallback; protected public procedure onFirstFix(ttffMillis: Integer); cdecl; procedure onSatelliteStatusChanged(status: JGnssStatus); cdecl; procedure onStarted; cdecl; procedure onStopped; cdecl; public constructor Create(); end; constructor TGnnsStatusCallbackDelegate.Create; begin inherited Create; FCallback := TJGnssStatusCallback.JavaClass.init(TAndroidHelper.Context, Self); end; GnnsStatusCallbackDelegate := TGnnsStatusCallbackDelegate.Create; Androidapi.JNI.GnssStatusCallback.rar GnssStatusCallback.rar
-
Может их нет, новых, а есть устройства которые уже подключались ранее Bluetooth.GetPairedDevices; FPairedDevices := Bluetooth.GetPairedDevices; if FPairedDevices.Count > 0 then for I:= 0 to FPairedDevices.Count - 1 do ListBox.Items.Add(FPairedDevices[I].DeviceName) Ну и если Android API >= 31 if TJBuild_VERSION.JavaClass.SDK_INT >= 31 then begin FPermissionBTConnectSettings := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_CONNECT); FPermissionBTScanSettings := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_SCAN); FPermissionBTAdvertiseSettings := JStringToString(TJManifest_permission.JavaClass.BLUETOOTH_ADVERTISE); PermissionsService.RequestPermissions([FPermissionBTConnectSettings] + [FPermissionBTScanSettings] + [FPermissionBTAdvertiseSettings], nil); end;
-
Не работал со стандартным JSON, но может так? TJSONArray* arr2 = arr1<TJSONArray*>(Object->GetValue(_D("arr2")));
-
Файл hosts смотрели?
-
Для начала доступ к памяти проверьте if TJBuild_VERSION.JavaClass.SDK_INT >= 30 then begin if TJEnvironment.JavaClass.isExternalStorageManager = false then begin Intent := TJIntent.Create; Intent:= TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('package:').concat(TAndroidHelper.Context.getPackageName))); if intent.resolveActivity(TAndroidHelper.Context.getPackageManager) <> nil then TAndroidHelper.Context.startActivity(Intent); end; end; В <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" Должна быть строка android:requestLegacyExternalStorage="true"
-
var IMessageSubscriptionID: Integer; // в создании формы IMessageSubscriptionID := TMessageManager.DefaultManager.SubscribeToMessage( TMessageReceivedNotification, HandleIntentMessage); procedure TForm1.HandleIntentMessage(const Sender: TObject; const M: TMessage); begin try if M is TMessageReceivedNotification then begin OnNewIntent(TMessageReceivedNotification(M).Value); end; except Form1.LogAdd('HandleIntentMessage except'); end; end; function TForm1.OnNewIntent(Intent: JIntent): Boolean; var insPath: String; uri: Jnet_Uri; begin Result := False; try if Intent <> nil then begin uri := Intent.getData; if uri <> nil then begin insPath:= JStringToString( uri.getEncodedPath); if (ExtractFileExt(insPath)='.x10') then begin // работаете с файлом end; end; end; except LogAdd('OnNewIntent except'); end; end; Также в манифест добавить <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="file" /> <data android:scheme="content" /> <data android:scheme="http" /> <data android:scheme="https" /> <data android:host="*" /> <data android:pathPattern=".*\\.x10" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <action android:name="android.intent.action.EDIT"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="file" /> <data android:scheme="content" /> <data android:scheme="http" /> <data android:scheme="https" /> <data android:host="*" /> <data android:mimeType="*/*" /> <data android:pathPattern=".*\\.x10" /> </intent-filter>
-
А почему TThread.CurrentThread.ThreadID.ToString, а не TThread.CurrentThread.ClassName? Тоже с логами вожусь. Для чего именно Id?
-
Вам уже ответили, но можете конечно сделать так в главном потоке procedure Test; const n = 200; var I: Integer; begin pb1.Min := 0; pb1.Max := n - 1; for I := 0 to n - 1 do begin pb1.Value := I; sleep(10); Application.ProcessMessages; end; end;
-
1. Разрешения приложения на чтение запись файлов 2. Файлы в Deployment для 32 и 64 бит разные, проверьте
-
Посмотрите это видео
-
Ну я судил поэтому Если нет, то тут только как написали вы, делать все самому, хотя я думаю накрутить и в TabControl можно красивостей)
-
Написал за 5 минут для примера как можно Новая папка.rar
-
Исходники не полные у rad studio вручную добавьте методы, путем перемещения соответствующих файлов (т.е. загаловочные файлы с описанием TJEnvironment и TJSettings) в папку проекта и добавлением в них отсутствующих функций и переменных.
-
try if TJBuild_VERSION.JavaClass.SDK_INT >= 30 then begin if TJEnvironment.JavaClass.isExternalStorageManager = false then begin Intent := TJIntent.Create; Intent:= TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('package:').concat(TAndroidHelper.Context.getPackageName))); if intent.resolveActivity(TAndroidHelper.Context.getPackageManager) <> nil then TAndroidHelper.Context.startActivity(Intent); end; end; except end; if TJBuild_VERSION.JavaClass.SDK_INT <= 29 then begin FPermissionReadExternalStorage := JStringToString(TJManifest_permission.JavaClass.READ_EXTERNAL_STORAGE); FPermissionWriteExternalStorage := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE); PermissionsService.RequestPermissions([FPermissionReadExternalStorage] + [FPermissionWriteExternalStorage], nil); end; Типо того
-
Ищите android:requestLegacyExternalStorage
-
Вам нужно делать через GnssStatus.Callback Т.е. на java писать сервис.
-
В файле System.Android.Sensors ваша функция выглядит так class function TPlatformGpsStatus.GetGpsStatusImplementer: TGpsStatusClass; begin Result := nil; end;
-
Скорее всего потому что GetGpsStatusImplementer = nil