i am writing an app that will use persons phone number (on a device) to identify the user on my network. what methods can i use to verify that the phone number retrieved from the device is real and not spoofed. i came up with two methods to do it but both of them require use of SMS:
sending SMS from a device to my server
sending SMS from my server to a device and intercepting it with my app
are there any other methods, i would like to omit using SMS if possible.
thanks
i think i found the best way to go about it. basically, i will have my app send a special text message to itself, the phone number of the device. i will of course notify the user that this will occur. my application will then intercept the SMS and will know that the number is all good. this should do it...
but these functionality is dependent to sim provider vendor... so, it's not the efficient way.. too identify... the particular mobile.. use of IMEI no. is applicable to all android devices.. if it seems significant u can use it...
ok new answer lol
your problem is then exactly the same as encrypted transfers or website register issues.
you could read up on how encryption programs transfert public and private keys to each other, I can't remember the details but if your app and your server both have a key you can use it to encrypt something like phone number+ConstantString and the phone number and then decrypt it and see if the numbers match.
jason
Related
I would like to send an SMS from a VB2013 application with my smartphone programmatically. I have already found several solutions how to solve this with Windows Phone (Outlook-Windows Phone). The only problem is, that I have an android device. So my question is, do you know any idea or solution that supports android?
The workflow that I want to implement is the following:
The user types into a textbox the phone number and the text on a VB2013 app.
He/She clicks to the "Send" button, and somehow it sends an SMS from the android phone to the phone number that is given by himself/herself.
Regards,
Roland
I would say that this is not possible directly.
The problem you already found is that your Smartphone is Android and
Vb.Net needs a .net Framework with which it works.
So the possibility I see is to get a connection
via USB port to your device and send some specific commands to
make your smartphone send SMS. To do this you have to use a serial port from
my point of view.
This question has already been asked, so
please take a look at:
Sending SMS with Vb.net
The .Net framework does not natively run on Android, so no this is not possible.
However, the Xamarin framework allows you to write android apps in Visual Studio.
Specifically towards your question, Xamarin has an SmsManager class that allows you to send Sms messages, the documentation can be found here.
Hope this helps.
There are several different ways to do this, but the best one is use an api like Twilio. You can literally send an sms with one line of code. They have a nuget package which would get you up and running even faster.
Another is to use carrier mail. You have to know the users carrier and then you can create an email address that sends as a text ie. 1231234123#txt.att.net. The issue with using cellular carrier email is that spammers often use this and one minute there is a message from your site and then next is spam, since it will be coming from the same carrier.email address.
I wish to setup a telephone number confirming system within my app, pretty much like WhatsApp does i.e. it sends you a PIN, it arrives on the Android device and that proves you are the owner of the device (telephone number).
Is this possible to fake an SMS via code from myself to myself so that I cannot pickup the Pin, again via to code, without any intervention from the user?
I looked at some reverse billing systems, but I couldn't find any that worked in all countries and of course this requires that the receiver pays for the SMS.
What are my best options here? And how would this work via the emulator?
Am I on the right track here? or should I be looking at an alternative solution or maybe reverse billing?
Edit
Here is an explanation with more detail of what I am trying to do.
My app requires the user to enter his/her phone number, I need to confirm that this phone number is a truthful one so I would like to send an SMS to the phone number / device.
This is basically exactly what happens with WhatsApp, you enter your phone number and they send you a PIN.
It's the process that I am not sure of, and if it's possible without reverse billing services.
I need to send a message to the device, I could do it via a server (web service) but I would end up paying for the SMS to the device.
So was hoping there was some sort of trick where from within code I send an SMS to the actually save device; once it arrives I can pickup the PIN and check it against a database on my server. If it's valid, I can confirm that this user does really have this phone number.
What I understood from your question:
You want to send an SMS to a user and let the app intercept it.
You want a way to test it on the emulator without actually sending an SMS.
A possible solution might be to write an SMS directly to the phone's inbox BUT I'm not sure if the BroadcastReceiver would actually intercept it.
Why don't you try it and let us know.
Here's how to write an SMS to the inbox.
Here's how to set up an SMS BroadCastReceiver.
I am creating an android application which gets the phones location, Latitude and Longitude, and time and sends it to a central database at regular intervals. The problem is I am using SMS to send this data and I am having trouble figuring out where to send it. The first thing which came to my mind is a computer which stores all this data and reads it then carries out an action based on the data, in this case it maps it.
So is it possible to send a SMS to a computer? Or should I try out a different method to send the data?
Any suggestions would be helpful. Thanks! :)
EDIT
I understand it is possible to connect my phone to the computer and then transfer the SMSs but I actually just have 1 phone right now and I cant have it always hooked up to the computer.
Euhm SMS? I dont think that is possible.
Try to use JSON.
https://www.google.nl/search?sugexp=chrome,mod=18&sourceid=chrome&ie=UTF-8&q=Send+data+to+server+android+json
You can connect you phone to your computer as SMS modem and get its SMS from your phone. Almost phone can do this. But the most common way is that integrated with a web service.
While it is possible to send sms to a computer if that computer has a GSM module (or mobile phone connected as modem) you should rather consider a different method.
I'd go with sending emails or - if you are willing to - create an AppEngine Project to receive the data.
I'm trying to figure out if this is even possible:
I'm interested in writing a simple game that could be played in a peer-to-peer setup, rather than having to go through some intermediary server. I was thinking of using something similar to how SMS works, but I don't know if those routines are accessible.
From what I understand, SMS is just a data packet with a specific structure, and on a certain port, that gets sent to a phone number as the unique identifier, rather than an IP Address. If that is the case, is it possible to use similar routines to what SMS uses in order to send messages to another phone, but in such a way that SMS will not pick it up, and if the app that would understand that packet is not running, then the data would just get ignored?
You can write Apps that send SMS and receive SMS. Some things to keep in mind:
SMS tend to be expensive, especially when compared to IP traffic.
The user must grant the permission to send and read SMS to the app. He probably won't do, beacuse he knows it's expensive.
Even if the users contract offers a SMS flat rate, providers may limit the actual number of SMS being sent or forbid automated, high-traffic usage.
SMS might be much slower than IP packets.
If a user tries to play with someone who hasn't installed the App, that poor person will have his SMS inbox flooded with those SMS.
So it's mostly a bad idea to use SMS for that purpose. Some alternatives if the users are close enouth to each other:
Use bluetooth.
Use Wifi (Most android phones won't allow ad-hoc connections, but some phones can act as acces points so that others can connect to it).
Maybe: Use NFC (only some of the newest phones have this, and I don't know if you can use NFC that way).
Use P2P over internet (which requires at least one provider to allow incoming connections on their network with a public IP, e.g. no internal NAT).
Use a server that handles the traffic between phones.
This is more about an explanation then it is about asking a question. What I am wondering is if its possible to write an Android application that can communicate with another Android phone, given the phone number of the phone I want to communicate with. By communicate, I mean I want to be able to send data to the phone and have my application on the other phone be able to recive it.
If its not possible to do this, then I guess my alternative is to have my application "sign" the phone into a server. Then I'm assuming the server can act a proxy to communicate with both phones.
Any clarification would be helpful!
Check out the BUMP api. It allows you to establish a connection between two (I think more are also possible) devices, and it gives you a channel over which to communicate. The devices need to be "bumped" first, but then it's all fair game.
Any reason why it has to be by phone number? That and i'm pretty sure you can only send data over WAN or local bluetooth/wifi.
Perhaps try something along the lines of a server that has phones sign into it and keeps track of the phones IP addresses allowing them to communicate almost directly to another (kind of like a dynamic DNS hah!).
Look into SMS. I haven't coded for mobile phones in years but I seem to recall that most phone operating systems let an app intercept SMS messages, react to their contents, and prevent the user from seeing them.
As long as you're not sending lots of data, SMS might do the trick.