Issue with firebase phone auth, not sending verification SMS - android

My app uses firebase phone auth to allow users to register, the issue is that I don't receive any verification code. but when I use a VPN app and try, it works!!
am sure that there is no issue in the code, since it works when I use a VPN. am wondering is it cause of my current location (I am based in Sudan)? although Sudan is listed in among the countries where the service is offered too in the documentation.
I think it could be that google services doesn't work here? but play store, other features etc. work like a charm. I know Sudan is under US sanction, so are other countries - does that mean this feature wont work at all?
If anyone knows whats going on let me know please!
Thank you

It seems that there is no way around it, due to the sanctions exposed in Sudan firebase or in fact all google services will not work unless you use a VPN.
For anyone else who runs into something like this, i did use a work around using this service.
Hope this helps!

Related

Sensitive permission issue while publishing my new app

I have created an Android app after months of hard work and when it came to publishing, Google straight away rejected it.
Google says i am using a sensitive permission PROCESS_OUTGOING_CALLS. To use this permission either my app shall be a default call handler or my core feature shall fall under the exceptions they have provided. If my core feature doesn't fall under those exceptions which it actually doesn't, then i must report a new use case. I reported new use case properly and waited for two weeks NO RESPONSE. I tried publishing my app again as exception "device automation". It got rejected again saying my app doesn't fall under this exception.
Basically what my app does is, base on phone number to which call is being made, it shows some personalize data on an overlay screen over dialer. ( Cannot tell you the complete details, i am really sorry for that). No it is not a caller id or spam detection either.
I went through Google document over and over to see if i missed something.
https://support.google.com/googleplay/android-developer/answer/9214102?hl=en
I couldn't find any.
My time and money has been invested in this and i can't start showing it to people.
If someone came across same issue and able to resolve it please help.
And if more details required please comment i will provide.
I've encountered the similar problem with Google a while ago but with this sensitive permission.
From my experience - the chances that the use case you submitted will be approved is near zero.
There are two things you can do in this case:
either extend your app to fall under one the exception cases.
or go the path I went - change your app main purpose to be the default dialer and your current main feature would be just a minor perk. (make it extendable to add more minor features in future)
This is the easiest way to publish your app. Well frankly I see it as the only solution possible - Google is known for its strict "You are banned and I'm not gonna change my decision" policy. Youtube and Play Store have tens of thousands ban stories non of which is ended in a user beneficial way.
Hope it helps.

How to recoginize trial user?

I'm trying to use android subscription system.
And I think setting up 7days trial.
I would like to summarize trial users and paid users separately.
I assume that my android app gets subscription status(trial/paid) from google play, then send it to my aggregation server.
But I couldn't find the way to discriminate the status with my client app.
How can I get it?
A work around would be to make a database table with the confirmation numbers for trial or paid? this can be connected to your web service online, once activated, you can have the confirmation key and status in a table and that way you can track the user?
but then you will have to have a code, that calculates, the days..
I am also new to android development, but if I had to do it I would do it this way.
or if someone is aware of a better way, then I would love to know it aswell..
but I still do not know you are asking for code or Idea of how can it be implemented..

Is there a way to send app statistics to play console?

I know that when app crashes a bug report is sent to my developer console.
Now I'd like to add a statistics usage function: for example each week app gathers my app's preferences settings and send them to my dev console. This way I could see what users like more and, on the other hand, what has to be improved.
Is it possible with some android function? I know I could do something like send an email, or make an hidden connection to my server but I'd like a more "standard" way (moreover these hidden methods could not be liked by some user)...moreover error logs are sent so there IS a mechanism, problem is if I can attach to it or not
Well, it's not the developer console, but you can use Google Analytics for that. There is an API to use it with Android, explained here: https://developers.google.com/analytics/devguides/collection/android/
It's up to you, what exactly you're gonna track, but it's very easy and for dealing with the statistics you have all the power of Google Analytics at hand.
EDIT: For best results with least effort, you should use the EasyTracker library, which makes sure that communication with the server is done in a separate thread; otherwise you will experience 'hickups' in the UI.

Best approach to identify if user paid for an app on google play

I seem to have reached dead-end as to how may i create a proper model which plays well under a scenario that i have in mind.
The scenario is as follows; User purchases an application from Google play. At run-time i request user credentials (Google account associated with current device) which i then transfer to a web-service. At that point the back-end service tries to Auth user and identify if they have actually purchased the application in question and only then return any data relative to the request. (keep in mind that any request in general, as we are talking about a content based application, to the web-service at any point of the run-time life-cycle must always pass through the above pipe).
Now the reason for the above scenario being so specific is for the following reason;
-I would like everything to be managed by the end service rather than having any Auth process running natively as it may easily get bypassed. What i mean is that as long as anyone can decompile the application on their device, inspect the code, recompile it to their needs, have full access to any file if the device is rooted or even be allowed to clear any data related to the application by simply pressing the "clear data" option from android's application settings..... i do not see any other viable scenario other than the one i described above.
Now having said all of the above my problem is that it seems that Google does not like this specific scenario with both Google play developer api and Google+ api.
So i would really appreciate your comments, thoughts and any related materials you may have to offer in regards to the scenario i mentioned and ways to tackle down this problem.
I don't know of any such API that you can use. Why not try LVL, which would make sure that it's actually downloaded from the Android market? And if it's a paid app, the user must have definitely paid for it.
As far as decompiling is concerned, try Proguard. It's not 100% perfect solution, but it's pretty hard to break it.
Now, coming to the content. If you don't want anyone else to steal your content, then encrypt and save it. You can have a pretty good encryption mechanism that works with your web services, which would ensure that it's very very difficult to break.
What's wrong with using LVL and ProGuard? These tools were designed specifically to address your concerns with license verification and reverse engineering, respectively.
And, really don't worry too much about the one in a thousand people who might try to get your paid app for free. If your app is any good, then you'll be making plenty of sales anyway.
If I've read your proposal correctly, that sounds like a gross violation of your users' privacy and would definitely be a violation of Google's ToS. Why would your users give you their private credentials? They aren't supposed to be given to anyone, so why should they trust you or your systems with them? You would also be liable if you got hacked and credentials were stolen.

Access to Android Cloud to Device Messaging android?

Is there any way to start developing and working with the framework without getting access from Google ?
now also they didnt give me access to
CtDM
C2DM is in a slow rolling beta. I imagine they got thousands of applicants, and they are only going to take on people at a pace that they can support.
is there any way to start developing
and working with the framework without
getting access from Google?
No. You are welcome to write your own push framework, but C2DM requires Google servers, and for the beta, your C2DM-enabled Google account needs to be on a whitelist.
check this:
https://stackoverflow.com/a/7888059/371749
devices need a google account to use this service! :=)
good luck!

Categories

Resources