get the device information programmatically in j2me - java-me

I want to fetch some information in J2ME programmatically. Whether it is possible to get all the information. I had done some search and got this link:-
http://developers.sun.com/mobility/m...ies/index.html
But it is giving be only few data like configuration.platform. I want all the data.
Features
Device platform. (android, iphone, blackberry, windowsmobile)
Maker of this device.
Model of the device.
Version of the OS on this device
Country device is from (obtained by querying the SIM card)
Country the current locale is set to.
Country the language is set to
Country the user is currently in (comes from Sim card).
Current carrier (comes from sim card)
Current mobile network code (comes from sim card)
Type of data connection (wifi, umts, gprs, evdo, ...)
Latitude and Longitude returned by the location provider
device PIN number

Related

How to use data wedge to connect to non scanner bluetooth device?

I have a use case for connecting with a arbitrary bluetooth device (not a scanner). I have the following questions -
Is it possible to connect data wedge to a random bluetooth device to send and receive data? I was unable to find any example online in docs or elsewhere. The idea is that the bluetooth device will dump data to its outputstream, and i am hoping data wedge can pick it up and insert in my app field.
Can data wedge also send requests to the bluetooth device? ( Or can it only be a listener and receive data? ) If yes, how to we configure the request string and frequency.
In our use case the data is a long string (eg - "a,b,c,d"). My idea is to send this string to a text field and then segregate it in application itself.
Our use case is for TC 56 devices. As i understand it, the application app listens for the intent data wedge generates post scanning. Can it work seamless on laptops as well? The service in our use case is a web app.

BACnet segmentation-not-supported on mobile

I'm implementing a bacnet library to read and write some object instances.
But I don't understand, why with a PC and with an application like Yabe if I ask to a common controller to read more than 300 objects, the segmentation is supported, instead with a mobile phone and on the same request to the same controller the segmentation is not supported.
Both the PC and the smartphone are in the same network on Wifi.
So what is the problem/difference?
It is nothing to take with a PC or a mobile phone. Any IP compatible devices mobile phone, desktop, laptop, Arduino chips will work with BACnet.
Your problem is segmentation. You will have to handle the segmented messages coming from the Controller.
Every BACnet controller vendor specifies the MaxApduLength (i.e max length of data to be transferred within one UDP packet). The standard APDU length is 1476 bytes. So a BACnet controller cannot send the data more than the length of APDU specified within it. 
Requesting 300 objects from a controller results definitely in a large APDU than the controller's limit. In this case Controller will send you segmented messages each with sequence number. You will have to handle this all segmented messages and combine them in one message then only you will get exact response. This is same with Yabe and other BACnet clients.
I have also written BACnet libraries for our mobile applications in Java and Swift 4.0 and both can read any number of objects from controller with segmentation support added. I have tested these with controllers having more than 400 objects.
Segmentation is used for APDUs (responses) that are too large to fit in one frame on the datalink. If both devices support segmentation, then great. If one of the device does not support segmentation, and the APDU does not fit, then "Segmentation not supported" error is issued. (and you have to then retry a smaller request).

Cisco Meraki Indoor Localization

I'm going to realize a indoor positioning application using Cisco Meraki technology.
I've inserted the floor plan in the Meraki dashboard and activated the web server to manage the receive of the HTTP POST scanning API.
In the HTTP POST I obtained the latitude, longitude, x and y arrays and all of them have the same value for all connected devices despite devices are not in the exactly same position.
So my question is:
is it possible to obtain the device's location with one only Access Point (only one Meraki MR33) or I need more APs?
For mobile devices to be tracked properly, a minimum of three access points (with four or more preferred for better accuracy and precision) should be detecting and reporting the received signal strength (RSSI) of any client station, asset tag, or rogue device being tracked. It is preferred that this detected signal strength level be -75dBm or better.

wear 2.0 sensors: Build an ecg with the body sensor at android wear 2.0 devices

Hallo Android developers,
i am creating an app to meassure datas with the Body sensor such like an ecg does. I am able to messure the heart rate.
But I want to get the raw data in [mV] of the Body sensors.
There are just TYPE_HEART_RATE and TYPE_HEART_BEAT to use.
Has anyone an solution to get the raw values over time?
It would be pretty fine if we can start a discussion about this Topic.
I found Access Raw Sensor Data that might be of help:
The Sensors API lets you to read raw sensor data in your app in real
time. Use this API to:
List data sources available on the device and on companion devices.
Register listeners to receive raw sensor data.
Unregister listeners to stop receiving raw sensor data.
The Sensors API does not automatically store sensor readings in the
fitness store, and sensor registrations created with the Sensors API
are not persisted when the system restarts. You typically use the
Recording API to
record data in the background with persistent subscriptions, and you
use the Sensors API to display or process sensor readings in real
time. In many cases, you use both of these APIs in your app.

How come it is always the GATT server that exposes services?

Looking at various GATT-based profiles, it seems that services are always exposed in the GATT server rather than the GATT client. For instance, the Time Profile (TIP) has the server exposing the Current Time Service (CTS). So, if a phone is to update a heart rate monitor with the current time using TIP, the phone will be the server whereas the monitor will be the client. But, being a heart rate monitor, the Heart Rate Profile expects the monitor to be a GATT server.
So, for a monitor that takes the current time from a phone, should it be a GATT client or server? Should it be set as a client whilst time syncing with the phone and set as a server otherwise? Should a custom profile be implemented such that the CTS is exposed in the client instead?
Thanks
Generic Attribute Profile (GATT) defines how server and client communicate with
each other using Attribute Protocol for the purpose of transporting data. Client
and server roles are determined when a procedure is initiated and released when the procedure is ended. Hence, a device can act in both roles at the same time.
I would suggest you to read Bluetooth Spec. In Part G 2.2 it explains the roles and configurations.
Client—This is the device that initiates commands and requests towards the
server and can receive responses, indications and notifications sent by the
server.
Server—This is the device that accepts incoming commands and requests
from the client and sends responses, indications and notifications to a client.
Back to your question:
The Time profile enables the device to get the date, time, time zone,
and DST information and control the functions related the time.
In your case, the monitor will be the GATT client when it takes the time from a phone. However, it can be a server at the same time for another procedure (operation, request etc.) with the phone.
In short, client and server roles are not fixed to the devices. When your phone exposes the current time, it will be server. Similarly, when it gets the current time from the monitor, it will be client. no need to customize the profile. If you want your phone to get the current time from a device and expose it to another device, just implement the same profile for client and server roles to your phone.
EDIT:
According to TIP profile spec, to get the current time information, the GATT Read Characteristic Value sub-procedure shall be used with the handle of the Current Time Characteristic. Monitor as a client will read the Current Time Characteristic from the GATT Table of the server (in this case it is the phone). As soon as the monitor retrieves the value from phone, it can update its Current Time Characteristic Value, and expose it to its environment in three ways:
Notifying it to its subscribed clients (BLE notifications). If you do it in this way, you will customize the Bluetooth TIP profile since this procedure is not defined there (I had a quick look to the document and didn't see it).
Broadcasting it in the advertisement packet (Doesn't require BLE connection)
Another BLE device connects to the monitor and reads the Current Time Characteristic value. This is the recommended way if you want to use Bluetooth SIG defined TIP profile as a server.

Resources