Hi, Software Engineer here :]
It's funny you mention this because one of the projects that I'm working on involves smartphone app talking to a vehicle through bluetooth interface (except mine deals with asking for J1939 codes and I have direct access -> no OBD interface
). Funny how things like these pop up :]
So, first off, have you looked at the Torque pro app? I am not familiar with it but it may already be able to do logging. Also, you would need a bluetooth OBD device, as I'm not currently aware of any Bt->wired->phone capabilities.
So that bluetooth OBD module is usually just a messenger. Usually it just wants to pair with something, and it just spits out data per request. So to put it as simply as possible, you would need an app that could pair the phone with the Bluetooth OBD device. The devices you can get sold usually are for mass market people like us and usually they are made to connect with apps like Torque Pro etc. so there shouldn't be any pairing issues like needing to decrypt a uuid with a secret key or any of that. The biggest problem you will face is how to talk to the reader and of course, developing the app.
Overall, my suggestion would be:
You generally have a speed cut off on highways, it's usually greater than or equal to 65mph. Unfortunately there are sections where it can be reduced to 55 mph and you can always have stand still traffic.
So first off, you should talk to the OBD device for speed, fuel, rpms etc. Log it all.
Now the tough part for you to figure out if it's highway driving.....
So I stated above you have a general cut-off of 65mph but there are some other factors that it isn't always the case. Guess what most phones come with now? GPS! :]
So if you wanted, you could compare data and look at GPS locations and type them into google and it will show you where it located. If this is for daily commuting, you could set ranges of GPS locations as 'highway miles' and the other data will be treated as city.
It is good to have redundant data from two sources, as it will allow you to check integrity of the data!
Heck if you really wanted to get fancy, you could probably check tire wear as well. OBD should be able to tell you the revolutions of the tires. If your car has a TPMS you could even find out the pressure. -> Compare the revolutions on your tires from the OBD and compare that to the GPS speed that you calculate and you can see (1): is your car reporting the right speed (2): monitor it over time and as your tires wear, the smaller the diameter, the more revolutions you make.
Heck you could figure out which sections have hills based on how fuel using traveling at the same speed.
You could also record which sections of roads are loudest by recording on your phone and normalizing that data with road speed.
You might even find out the drag from rough road surfaces: higher gps speed on a time scale too low for wear. The scaling is important because on longer scales tire wear can create a similar difference in data. -> Long term changes are wear and short term changes are not.
With all the data, you'd be able to determine if it rained, snowed, or a dry day.
With all the data, you could use it to find out just about anything