Open uncleashi opened 8 years ago
I'd like to, but I don't have the time to right now and its not the focus of this project. I'd suggest trying Room+, which is a 3rd party app that is kept up to date.
The app in this repo is certainly functional, but it does need an update to use the new permissions handling of Android devices. I don't really have the expertise to do this and would love help if someone wants to improve the open-source app.
Hi Schollz,
Noted. I have seen Room+ app but there are few issues which I found in it. Irrespective of that I would like to contribute to this project. I am more comfortable with Android development. And can port the complete logic onto Android environment. And I also think that it would be a better thing to do if we look at long term support for this project. Let me know your views. Thanks
@uncleashi That would be wonderful!
The logic is very simple. All the app needs to do is capture the RSSI and signal strength of surrounding WiFi networks, and then format that information into the following JSON:
{
"group":"some group",
"username":"some user",
"location":"some place",
"time":12309123,
"wifi-fingerprint":[
{
"mac":"AA:AA:AA:AA:AA:AA",
"rssi":-45
},
{
"mac":"BB:BB:BB:BB:BB:BB",
"rssi":-55
}
]
}
This JSON is sent via POST https://ml.internalpositioning.com/learn
or POST https://ml.internalpositioning.com/track
depending on whether it is learning or tracking. The user, group name and the switch to learn/track should part of the UI that the user can modify. The other major feature is that it needs to be able to run in the background. The current app does this, but as you mention, the current app lags behind in the ability to set permissions according to the new Android standards.
Awesome. So, are you comfortable if I port this complete logic into Android JAVA environment, as I am more comfortable with it?
Yep, that sounds great!
Cool. Lets get this rolling. Will share the brief with you about what all I am planning to add in the app. And then we can kickstart.
Hi Schollz,
have started working on the app. I have couple of question:
If yes how does it works if someone is setting up their own server? Following is the snippet from your code:- var fingerprint = { "group": "some-group", "username": "some-user", -> "password": "none", "location": currentLocation, "time": Date.now(), "wifi-fingerprint": network_data }
a. Tracking b. Learning And want to understand the consequences if we increase the scanning period.
Thanks
Great @uncleashi ! Here are some answers:
Passwords are not needed anymore. There are no passwords on the site, and I have no plans for passwords.
The ideal scanning interval for learning is ~3 seconds. Faster than that and phones tend to fritz out. The ideal scanning interval for tracking is maybe ~10 seconds, so that it can detect that you are in a new location relatively quickly (in 10 seconds).
I would send an object after every scan - the realtime applications are what I find most useful and that won't be possible with batching.
Thanks, please let me know if you have more questions!
Hi @uncleashi !
It's awesome to see that you are already working on it, great news! Many thanks!
If I'm allowed, I want to comment that for question 2) I would love to see the option to change the tracking interval dynamically through an Android intent. One of the best features of the Room+ application is it's integration with Tasker, but making a specific Tasker plugin is not needed as a first step, the Android intent listener is more than enough for now. Anyway, this is not a feature that should be available for a 0.1 release, so you can forget it for now. I just wanted to point it out ;)
Keep up with the good job and best regards,
Aitor
Thanks Schollz.
Couple of questions:
Hi @bodiroga ,
Thanks for feedback. I am planning to add this into settings intent wherein one can change Learn and Track scanning interval. :)
As far as I know Room+ allow you to change BG scan interval. Just a guess as I have not used it PRO version.
@uncleashi
Awesome.. thanks..
Hi @schollz,
Wanted to understand FIND behaviour in following cases and which will be the best case to use for learning: There are 3 rooms next to each other. I want to map each of them on FIND. Now here are the cases:
Cool, great progress!
In terms of learning modes, I haven't tested so I can't tell you for sure. I suppose that 1 is better, but I usually just do 2 with results that are just fine.
Noted and thanks. :)
Hi @schollz ,
I have finished the v1.0 of android client app and in a day or 2 time I can push it into repo. Let me know how can we go about pushing it. Thanks :)
@uncleashi That's awesome!
Actually, would you like to make your own repo e.g. github.com/uncleashi/find-app? That way you can be the maintainer since you did the coding.
Also I'm trying to move away from the different branches I've created for different programs (docs/client/server/app) - it seems to be confusing. I'm going to be splitting things into various branches soon.
Hi @schollz ,
Sure sounds good. I can make a separate repo for it which you can include into FIND documentation. Also, I will include .apk file too as requested by someone so that developers can get started quickly. Let me know if you need any help from my end to document it into FIND documentation? Will push the repo tonight. :) Thanks
@uncleashi, great! I'm excited to try it.
As for documentation, I'm happy to write it up, or you can submit a PR to the documentation page. The documentation pages are actually moved out of this repo now, and moved to https://bitbucket.org/schollz/find-web (I like to have stuff in both Bitbucket and Github since I don't like relying on just one service...).
Hi @schollz ,
The initial commit of client is pushed now.. You can clone it and test. :) Following is the link to repo: https://github.com/uncleashi/find-client-android
Let me know if there is something obvious that I've missed. Thanks
@uncleashi , I tested it out a little bit! Fantastic work, you really made a stunning app.
I'll test it out a bit more before submitting to the Play store.
Hi @schollz ,
Any feedback on it after your testing? Accordingly I'll add other features to it Thanks
@uncleashi
Yeah, here are my thoughts so far:
@schollz ,
Please find my response below:
I can ask for a sign in on app startup wherein the user can sign-in using its existing account. Let's say its "jhon@gmail.com". We can assign that as the group name and assign username as "john". The thought is to make it intuitive for the user even on the first run so that they don't have to look for what was the username or groupname.
Let me know your thoughts on it or if you can think of any better way let me know.
@uncleashi All great! Emails are great for group names / user names (as you suggest) as they are a unique namespace. The "@" sign also doesn't seem to be a problem for storing dbs or the dashboard.
@schollz ,
Cool change the flow then as discussed. Thanks
@uncleashi, sorry to be a hassle but would it be possible to include an APK on your repo? I'm quite the Android Studio noob! I know you said about it earlier in the thread :) sorry for pestering
Scratch my last comment, I managed to get up and running with just the repo and android studio, app seems to work great! :)
@uncleashi
I see your comment below about the notification in the notification bar but after having downloaded the latest version of your app, building and installing it I do not see anything in the notification bar.
Yes, I have added that feature wherein if the scanning of any sort is going in the Background, then the user gets notified on Notif bar about it. This feature will be there in next push.
I am very interested in your app, specifically for the background updates but on my moto x4 running android Oreo I get only very infrequent updates when the app is in the background. Maybe every 2 minutes but sometimes nothing for much longer periods of time.
For clarification, I am using the code from here: https://github.com/uncleashi/find-client-android
Thanks
Hi,
I was going through the project. Managed to build Android client app but found that the app on Google Play store and the current git app are different. The app on github was last updated 7 months ago. Can you please update it?