fsdb

Пользователи
  • Публикации

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

  • Посещение

  • Days Won

    3

fsdb last won the day on 29 октября 2016

fsdb had the most liked content!

О fsdb

  • Звание
    Продвинутый пользователь
  • День рождения

Посетители профиля

238 просмотров профиля
  1. понял что их перенесли. а как их восстановить только для приложения под windows 7 не совсем понимаю. подскажите пожалуйста.
  2. Помогите! В Delphi 10.1 в проекте firemonkey пропало событие onDblClick в StringGrid, мне нужно что бы приложение в windows при двойном щелчке мышкой обработать событие. Дело в том что приложение под windows завязано особо с приложением под телефон и я не могу писать в VCL под windows
  3. вопрос закрыт. все получилось. с ардуино получаю и отправляю данные ничего такого особо интересного - я делаю экструдер
  4. Secure determines whether the connection to the service should be secure (True), using device authentication and encrypted communication, or if the connection does not need to be secure (False). Data transmission is faster using unsecure connections. http://docwiki.embarcadero.com/Libraries/Seattle/en/System.Bluetooth.TBluetoothDevice.CreateClientSocket но пока не ясно если даже ставлю секьюрити = не работает
  5. скрин лог из втоей программы. тоже на секьюрность вроде как жалуется
  6. что такоепоследний параметр. поясните пожалуйста. не понимаю. на что влияет ServerConnectionTH.FServerSocket := FAdapter.CreateServerSocket(ServiceName, StringToGUID(ServiceGUI), False);
  7. Classic Bluetooth Basic app, прошу прокоментировать мои скрины кто что скажет и почему ошибки. имя точки моей называется FilamentExtruder
  8. Добрый день. На андройде пытаюсь воять что нибудь что бы работало с моей arduino по bluetooch Со стороны ардуины проблем нет. я все спаял. как только подается питание - ардуина сразу шлет на блютух данные. моя задача принять их в андройде. я скачал для проверки из гугл плей маркета терминал и все ок- данные с ардуины в терминал чужого приложения идут. -hello word теперь пытаюсь сам что то сделать но я столкнулся с полным не пониманием как работает блютуз помогите хотя бы объяснить последовательность моих дествий. у меня есть включенный блютух на ардуине и его имя всегда hc-06. В настройках системы андройда я вбил пароль 1234 и все он показывается как сопряженное. теперь вопросы: 1. если я знаю имя блютуха (HC-06) то нужно ли мне в первый раз производить поиск этого устройства? 2. если я уже в настройках системы подключился к блютуху - нужно ли мне заново как бы в нутри моего приложения заново подключаться к нему? если да, то почему 3. как получать текст по блютузу с другого устройства? я понимаю например TCPIP/UP там есть onRead а тут.. не понятно. я смотрел примеры от стандартные по блютуху но они для меня оказались слишком сложными и ниодин из откомилированных примеров не смог получить данные с ардуино - (хотя чужое приложение с плей маркета смогло) помогите хотя бы псевдокодом. я не понимаю порядок моих действий. кто чем может. хелп.
  9. Ребята помогите, бъюсь уже целый день. что нужно добавить в path что бы вылечить exited with code 9009 при попытки компиляции Проект работает под win 10 x64 компилируется. а на win7 x86 не хочет. java установил одинаковой версии. path одинаковый и изменен с учетом разрядности
  10. спасибо! научили! все получилось.
  11. Спасибо, а как создать интент для сервиса? Intent intent2=new Intent(); так ничего Intent intent2=new Intent(context, ?????????????.class);
  12. https://yadi.sk/i/logBm8J1qYY9T не стартует сервис. Unable to start service Intent U=0: not found я так понимаю мой код рабочий на старт в JAVA AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); Intent intent2=new Intent(context, BootCompletedReceiver.class); PendingIntent pi= PendingIntent.getService(context,0, intent2,0); MainActivity.pi.cancel(); am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),10000,pi); просто я что то не прописал в манифесте. в каком? приложения или сервиса? вот манифест шаблон активити <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%"> <%application-meta-data%> <%services%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <%receivers%> <receiver android:name="com.PanelControlReceiver.BootCompletedReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application> </manifest> <!-- END_INCLUDE(manifest) --> пред шаблон актвити <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.embarcadero.PanelControl" android:versionCode="10" android:versionName="1.0.1" android:installLocation="internalOnly"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_CALENDAR" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_USER_DICTIONARY" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_CALENDAR" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" /> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="true" android:restoreAnyVersion="False" android:label="Panel Control Debug" android:debuggable="True" android:largeHeap="true" android:icon="@drawable/ic_launcher" android:theme="@style/AppTheme" android:hardwareAccelerated="true"> <service android:exported="false" android:name="com.embarcadero.services.PanelControlService" /> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="Panel Control Debug" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="PanelControl" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.embarcadero.rtl.notifications.NotificationAlarm" /> <receiver android:name="com.PanelControlReceiver.BootCompletedReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application> </manifest> <!-- END_INCLUDE(manifest) -->
  13. я просто закоментировал строчки на которые ругался компилятор. что то про аккаунт - не знаю откуда но я так понял они мне не нужны. Вроде все работает, но скажите пожалуйста почему когда я добавляю строчку у меня просто рушится выполнение в OnRecive? я хотел обработать событие загрузки ОС... if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { Скажите пожалуйста как мне идентифицировать событие AlarmManager в OnReciver - как например что ОС только что загрузилась intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) встает вопрос а сами классы можно как то разделить? что бы оба обрабатывали onRecive но один из них только для загрузку ОС обрабатывал что бы избжать проблему что я описал выше После перезагрузки ОС, мой таймер установленный в AlarmManager перестал работать. т.е. обнулился. это нормально? я думал один раз поставил и больше не забудет AlarmManager В вашем проекте я нашел строчку написанную ниже, скажите где можно увидеть этот самый лог. Log.d("FMX", "AlarmReceiver.onReceive"); Я заметил что интерфейс (например ['{A27E897E-3AE0-4953-BA9C-FD2056EBAF2C}'] ) меняется каждый раз.. на сколько критично что бы там были цифры самые актуальные, т.е. последнесгенерированные.
  14. отредактировал Делаю по статье с небольшими отклонениями, на скрине стрелкой у меня возникает ошибка - не могу разобраться https://yadi.sk/i/wuXpygfIqVjxr Я пытаюсь добиться того что я из программы поставил таймер на автозапуск сервиса каждые 10 секунд. сгенерировал вот такой файл unit Androidapi.JNI.BootCompletedReceiver; interface uses Androidapi.JNIBridge, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, Androidapi.JNI.Os; type // ===== Forward declarations ===== JAccount = interface;//android.accounts.Account JBootCompletedReceiver = interface;//com.PanelControlReceiver.BootCompletedReceiver // ===== Interface declarations ===== JAccountClass = interface(JObjectClass) ['{94EE6861-F326-489F-8919-E20B39E3D9C1}'] {class} function _GetCREATOR: JParcelable_Creator; cdecl; {class} function _Gettype: JString; cdecl; {class} function init(name: JString; type: JString): JAccount; cdecl; overload;//Deprecated {class} function init(in: JParcel): JAccount; cdecl; overload;//Deprecated {class} function hashCode: Integer; cdecl; {class} function toString: JString; cdecl; {class} procedure writeToParcel(dest: JParcel; flags: Integer); cdecl; {class} property CREATOR: JParcelable_Creator read _GetCREATOR; {class} property type: JString read _Gettype; end; [JavaSignature('android/accounts/Account')] JAccount = interface(JObject) ['{71476381-8B6E-471F-9189-9857ECD7508C}'] function _Getname: JString; cdecl; function describeContents: Integer; cdecl; function equals(o: JObject): Boolean; cdecl; property name: JString read _Getname; end; TJAccount = class(TJavaGenericImport<JAccountClass, JAccount>) end; JBootCompletedReceiverClass = interface(JBroadcastReceiverClass) ['{8DF216DC-3DF7-4344-A5C9-927DCAFABA3F}'] {class} function init: JBootCompletedReceiver; cdecl;//Deprecated {class} procedure onReceive(P1: JContext; P2: JIntent); cdecl;//Deprecated end; [JavaSignature('com/PanelControlReceiver/BootCompletedReceiver')] JBootCompletedReceiver = interface(JBroadcastReceiver) ['{07FF690C-FF5F-423D-B884-FB7EF3D91E78}'] end; TJBootCompletedReceiver = class(TJavaGenericImport<JBootCompletedReceiverClass, JBootCompletedReceiver>) end; implementation procedure RegisterTypes; begin TRegTypes.RegisterType('Androidapi.JNI.BootCompletedReceiver.JAccount', TypeInfo(Androidapi.JNI.BootCompletedReceiver.JAccount)); TRegTypes.RegisterType('Androidapi.JNI.BootCompletedReceiver.JBootCompletedReceiver', TypeInfo(Androidapi.JNI.BootCompletedReceiver.JBootCompletedReceiver)); end; initialization RegisterTypes; end. часть кода из класса вырезал, но суть оставил - это вызов запуска сервиса. и не совсем понятно - можно ли как то ловить только события будильника. как например ловится при автостарте if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { package com.PanelControlReceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import java.text.Format; import java.text.SimpleDateFormat; import java.util.Date; import android.app.AlarmManager; import android.app.PendingIntent; import android.os.Bundle; import android.os.PowerManager; import android.widget.Toast; import java.util.Calendar; import java.util.*; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.io.File; public class BootCompletedReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { Intent TestLauncher = new Intent(); //создаем класс TestLauncher.setClassName(context, "com.embarcadero.services.PanelControlService"); context.startService(TestLauncher); //Обычный запуск сервиса } }