How to uniquely identify a downloaded Java ME app [duplicate] - java-me

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
A unique identifier for cell phone other than IMEI or IMSI?
I have the following problem:
I want to offer a Java ME app for download, which can obviously be installed on a mobile phone (different manufacturers and models) and will afterwards - when used - communicate with a web server. During this communication I need to uniquely identify the app (i.e. the phone/user) but preferably without bothering the user to enter a username/password or something.
My first attempt was too use the phone's IMEI, but it's a pain in the a** to retrieve the IMEI from a phone using JavaME and for some phones it does not seem to be possible at all. At least I couldn't find a way to guarantee that the app will transmit a correct IMEI for every phone. Please, anyone correct me if I'm wrong.
Second idea was too encode an ID into the app before it is downloaded. Is there a standard/preferred way to do this (besides adding the ID to the .jad file)? Any hints would be appreciated.
Thanks in advance.

How about using the System.currentTimeMillis() at the first time the user fires up the MIDlet? The chances of this being identical for two users are slim-to-none ;)

Related

How to tell which application my Yubikey is using?

According to Yubico, the Yubikey 5 supports many different "applications": OTP, OATH, PIV, and FIDO/U2F to name the main ones.
My question is... how do I know which one my Yubikey is using for a given website?
For example, say I register my key to protect my Google account. When I log into Google and it tells me to press the button... is it using OTP? FIDO/U2F? OATH? Magic?
I can't seem to find any information on this, but it seems like an important question because by default it seems like pressing the button is sending keyboard strokes to the computer in the form of a OTP that needs to be authenticated against YubiCloud which I don't necessarily want.
In general, when you are asked to tap your YubiKey in a text field, which then emits a 44-character string "cccc....", you are using OTP.
If a modal dialog pops up asking you for a security key (or a passkey), you are using FIDO.
Other YubiKey applications are not often seen on web sites. Google in particular uses FIDO these days.

Remote Control Other Devices Running Evernote

I'm looking for a solution to remotely control a collection of devices running evernote from my tablet. For example, we have several musicians on stage that read from Evernote during a live performance and I would like their tablets to load the same note that I choose from my tablet. This hands free functionality is very important to our musicians.
I have a degree in computer programming so I don't mind writing code, I just need someone to tell me if this is possible with Evernote's api. Thanks in advance for the advice.
Following on, I'd set it up the following way:
Have the main database which will act as the main controlling point. In it's simplest form, you'll probably only need 3 fields or similar.
TABLE: WhatRecord
WR_ID - INT
WR_EN_ID - varchar
WR_DATE - datetime
You have an admin site (section) that would be able to save to the database, the current EverNote record ID for the clients to pull.
Each client page, would just poll the database for a change every 5 seconds or so.
If that record ID or date changed, then the page, would download the new record ID.
It'll probably take a little bit to set up, but shouldn't be too complicated.

How to generate call to a mobile using asterisk

I am a college student and a complete newbie to asterisk.
I'm currently working on a project 'email to voice call'.
Using python i'v extracted the email & converted it into speech and saved in a WAV file.
Now using asterisk i want to generate call to the mobile of the user through my system.
I have read the book 'Asterisk: The Future Of Telephony' as suggested by many. But i'm still not able to understand what all things i need to setup to generate a call to mobile.
What i understood is that i need to configure two files i.e. sip.conf where i need to give the details of VoIP provider and extensions.conf for dial-plan. Asterisk will tell the VoIP provider to generate a call.
Now can anyone please tell me what things i need to setup other than these? Also can you help me in the configuration of these two files??
Please help. Any information will be appreciated.
Thank You.
I am not fully understand your case.
You want to generate call on user's mobile (cellular telephony)?
Or
You want to generate call on user's mobile voip application?
If you case is second then you only need to configure 2 files as you have mentioned. And you can easily get pre-configured files from internet (voip-info.org).
But if you fall in to case one then you need following apart from those 2 files.
Additional hardware FXO card.
Need to configure zaptel driver for that FXO card.
One telephone line.

BlueCove Client Doesn't Recognize PyBlueZ Service

I have a bluetooth server running on my Ubuntu desktop written using PyBlueZ. That server is advertising a certain service via UUID. I have tested this server thoroughly using a client I also wrote with PyBlueZ.
Now I am attempting to implement a Java client using BlueCove. My BlueCove client can successfully locate my desktop (I checked by printing out the "user friendly name"). However, when I do a service search on my desktop for the advertised UUID, no services are found. I do not get an error or anything, I simply do not get any callbacks for services discovered.
Is there anything unusual that might be going on when connecting these two systems? The UUIDs are identical, although I have noticed that the PyBlueZ format asks for dashes "-" in the UUID, whereas BlueCove expects one continuous string of hex digits. I assume this is a purely presentational issue.
Finally, in an unrelated matter, are there any BlueCove communities out there? I have been coming up with an extreme shortage of resources to find answers to my BlueCove questions...
The mistake I made was that I did not realize searchServices() was an asynchronous method which required as much time as device discovery to execute. I was not sleep()'ing to give it a chance to find services.
Now that I'm giving searchServices() time to complete, it is at least invoking the serviceDiscovered callback.

j2me MIDP: detecting if phone has a data plan

Is there a way to determine what kind of data plan a device has so an app provides a less rich experience if a data plan is not available? I imagine the connector factory would still be able to return me an HTTPConnection but it would cost the user serious money for lots of data, and I'd like to be nice and prevent that.
I thought there would be a way to query device capabilities in the MIDP API, but maybe it's in CLDC?
Since you mention it in your comments, you can probably make a Symbian OS C++ application that only connects via a specific set Wi-Fi access points (and just stay offline if none of these are available) but I can't think of a way to figure out the current user data plan or whether a given Wi-fi network is free.None of that is available in J2ME, at least not until something like JSR 307 is implemented.
You might want to look into how the Nokia IAPInfo API behaves on actual phones (including Sony-Ericsson and Samsung Series60 phones, potentially) since it is the closest thing to what you want.
No there is no way to do this.
As far as I know there is no way to do this. To address this precise issue, on first download we provide a big bold letter warning saying our apps require data plan. You can do something similar.
Or you can provide an option on first download for the user to say whether he has a data plan or not, and provide a degraded user experience if he doesnt. Dont forget to keep this as an option in application settings and allow the user to enable data services later, as he/she may get a data plan and want to use your app.

Resources