I ported my JavaFX application to my Android device. I want my application to read incoming SMS messages and store it in a database. I found several questions here in StackOverflow but I don't know how to implement in a JavaFX approach. Please help!
How to analyze incoming message (JavaFX on Android)
1.4k views Asked by The Well At
1
There are 1 answers
Related Questions in JAVA
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- Creating global Class holder
- No method found for class java.lang.String in Kafka
- Issue edit a jtable with a pictures
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- Does the && (logical AND) operator have a higher precedence than || (logical OR) operator in Java?
- Mixed color rendering in a JTable
- HTTPS configuration in Spring Boot, server returning timeout
- How to use Layout to create textfields which dont increase in size?
- Function for making the code wait in javafx
- How to create beans of the same class for multiple template parameters in Spring
- How could you print a specific String from an array with the values of an array from a double array on the same line, using iteration to print all?
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Accessing Secret Variables in Classic Pipelines through Java app in Azure DevOps
- Postgres && statement Error in Mybatis Mapper?
Related Questions in JAVAFX
- Function for making the code wait in javafx
- JavaFX build generating a blank gui with primary view and secondary view buttons
- JavaFX SwingNode instantiation fails with exception
- I want to understand modularity in java. When compiling my app I have a ResolutionException
- Importing Jython into a JavaFX application
- gluon attach audio doesn't play any sound on android
- Using javaFx, how to distinguish between return-key and enter-key on the numpad?
- Displaying a Hashmap in a TableView in JavaFX
- HBox doesn't fill parent GridPane when rotated by 90 degrees
- Run java program
- Setting up MongoDB with JavaFX in Intellij, MongoDB external Jar files throwing errors
- JavaFX not support GPU hardware decoding?
- JavaFX resize ImageView in center of BorderPane
- In Javafx how to access object of a component which is under an overridden method? Problem related with TableView
- How to style rounded corners of a TextArea in JavaFX
Related Questions in JAVAFX-2
- JavaFX, Alt+Num (0-127) different for Java 7u80 (gibberish) vs Java 8u202 (normal ASCII), both default chatset UTF-8
- Java application not responding
- JavaFX Scene/background Color: How to Change?
- Javafx Controlling UI from separate class, can't add node from calling class
- Execute Runnable Jar with args from JavaFx application
- How to print indian regional language in java like gujarati?
- How to bind a directory path with a TreeItem in JavaFX?
- JavaFX - How to disable TreeTableView column or Cell children Node on Button Click
- How to resize JavaFx fxml components with maximizing the window?
- How do I use sliders to change RGB values?
- How to add font styling tags to text in JavaFX?
- JavaFXML create custom tag element that does not extend node
- Not able to add Canvas in main.java (JavaFX)
- GridPane unintended row resize
- How to make mediaView appear always at the center of BorderPane in JavaFX?
Related Questions in JAVAFX-8
- How could I make a slider like this? Could this even be executed as a slider, or do I need another kind of node for this?
- Javafx textfield expanding to width of popup window
- JavaFX. Blocking user actions
- How to populate a JavaFX Textfield upon Redirection Using a Controller
- Why does Apache NetBeans Null Pointer Exception give me an error in my Java FXML project?
- How to remove blue border from TableColumn in JavaFX during reordering
- How to properly inherit an FXML annotated attribute for having it available in a subclass?
- How to fix JavaFX alignment problem when grouping elements?
- How to Change the Custom Color Lable text color using javafx css
- Creating PDFs in a custom javafx application
- why are the messages only being printed on client side of the GUI?
- Updating TableView from another FXML/Controller
- Get values from the ListView and display on a label in JavaFX
- Figma with JavaFX and custom components
- Javafx showing folder icons when I run it
Related Questions in JAVAFXPORTS
- JavaFX 3D API does not work on all Android deivces
- GluonFX on android: Push notification are not working when the app is closed
- APK compiled with JavaFXPorts does not work
- Maven and JavaFX on Raspberry Pi: Loading library glass from resource failed: java.lang.UnsatisfiedLinkError
- jar image from jlink does not show org.kordamp.materialdesign2 icons but they load when program is run in intellij
- Error encountered while parsing GraalVM Nashorn FavaFXPorts Android
- How to add javafx classes in an android project with Android Native classes in Android Studio?(Android Native Feature/views + some javafx class/views)
- Error building JavaFXPorts project with Gradle 6.6.1
- The package java.util is accessible from more than one module: <unnamed>, java.base while adding 'android.jar' in classpath
- Automatic horizontal scroll on javafx TableView
- Javafx more reusable to click and change text of 30 labels on one page
- Animation "ghosting" on xxhdpi Android javafxports application
- Anybody using Gluon Client Plugin in windows with GraalVM 20?
- Performing an action when a push notification is clicked in Gluon based application
- Opening a PDF file in Acrobat Reader
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
These are the required steps to create and port a JavaFX application to an Android device, so you can track SMS messages, allowing:
Step 1
Using Gluon plugin for NetBeans create a new JavaFX project. Let's call it SMSTracker, with main class
org.jpereda.sms.SMSTrackerFX. Onbuild.gradle, update the jfxmobile plugin version to b9:First of all let's create
SMSMessage, a JavaFX pojo with our model:With ScenicBuilder and FXML or by code, create your UI. For this sample, it will be a simple UI with three main areas, for the three above mentioned options.
And this is what we have for now:
Step 2
Following HelloPlatform sample, we will add a
PlatformServiceclass and aPlatformProviderinterface, with the required services:This interface will be implemented on each of the three platforms (desktop, iOS and Android). Obviously, we'll focus only on the Android implementation.
This is the project view on NetBeans with all the packages and files involved:
Step 3
Let's implement now the services on Android. For that I've followed several great answers at SO: sending SMS, read inbox and listening to incoming SMS.
From the last one, we can crete a class that sets an
ObjectPropertywith anSMSMessageobject every time one is received:In order to launch this listener, we use
FXActivity, the class that extends the Android Context class and provides the access to the Android services, to register an instance ofSmsListener:Step 4
Finally, all we need to do is bind the property with our label on the UI and start the broadcast:
Note the use of
Platform.runLater()to update the label: the broadcast thread is different than the JavaFX thread.Step 5
The last step before building the apk consists on modifying the
AndroidManifest.xmlfile to ask for the required permissions.Since the jfxmobile-plugin creates one by default, running
gradlew androidat this stage will generate it. It is located underSMSTracker\build\javafxports\tmp\androidfolder.Copy it to another location (
SMSTracker\lib) and include its reference in thebuild.gradlefile:Now edit the file and add the required permissions and the receiver:
Save, build and run
gradlew androidInstallto upload the apk to your device.Full project
All the code for this application can be found here, including apk ready to be installed on Android devices.