App Permission declaration form rejected by Google - java

I recently received the notification from google that my app uses some of the permissions that are not necessary so I need to submit a declaration form .So I submitted the declaration form .
They asked these questions so I replied this:-
1: In one sentence, please describe the core functionality of your app.
This is an security app, app uses sms in sense when there is not internet, app will send sms after asking user and giving full awarness about the sms sending, sms only will be send when user need not intensively, and will send to only user declear person whom user want to send
2: What is the core functionality in your app requiring the Call Log and / or SMS permissions?
Connected device companion apps that enable send and receive of SMS or calls [SEND_SMS, WRITE_SMS, RECEIVE_SMS, RECEIVE_MMS, READ_SMS, READ_CALL_LOG, PROCESS_OUTGOING_CALLS, WRITE_CALL_LOG], N/A
4: Do any of the following other use cases apply to your app’s core functionality request for Call Log or SMS permissions?
Physical safety or emergency alerts.
After few Days I got this reply
We reviewed your request and found that your app does not qualify for use of the requested permissions for the following reasons:
The declared functionality {CONNECTED_COMPANION_DEVICES} is determined to be unnecessary or not aligned with the core functionality of your app.
It looks like you are using SMS/Call Log permissions group for functions that might qualify for exceptions: {SAFETY_EMERGENCY_ALERT}.
Please declare it in the declaration and resubmit the form.
Please Tell me is there any solution to fix it ? What changes I need to make in my code?

The first app that I developed and put on the playstore (very ugly) did exactly what yours does and so I received YOUR SAME NOTICE.
In fact, I am at the next step as I have started a "challenge" to request an exception.
They answered me like this:
SMS / Call Log permissions group for ineligible functions: {Device Locator}
.... but my app is a DEVICE LOCATOR! It's its main feature!Mahh
I suggest you do, as I did, by replying to the e-mail and saying if the localization apps are allowed or not via sms ... there is no written anywhere in the policies that is not allowed.

Related

How to handle deleted app device token in Pushwoosh?

I am using Pushwoosh for sending notifications to Android and iOS apps from Java Webservices. I found it very easy to use.
I have successfully implemented it. I am using createMessage method with multiple device tokens for sending notifications.
I have used it for many times, and was getting proper response. But after some time I'm getting some device tokens in UnknownDevices key in a response. It is because some devices have deleted the app.
So is there any way that I can handle this situation that not sending notifications to devices which have deleted the app? How can I know that device has deleted the app?
Does Pushwoosh blocks account if I keep sending notifications to devices which has deleted the app?
Thanks
There are two ways of handling this:
Send pushes via Tags feature, where you set Tags on the device with the setTags method, not with push tokens. We will remove invalid/expired tokens for you.
You can use getUnregisteredDevices method, which is currently not documented publicly, but the Support team can provide details. the only disadvantage of this method is that it does not return iOS tokens handled by Apple feedback Service.

Java Mail being blocked by gmail in some cases

I have a running and working implementation of the Java Mail API. I am using the api to send out bulk email messages. On some occasions, the login gets blocked by google. So, I go to my gmail account and allow access to apps and set the security level to give access to apps that don't use what google calls "modern security". So, the google page tells me to try my program again. I try it again and it still won't let me log in. On some occasions when I have a login fail, I can go to the account, log in, and type in the recaptcha. This will allow me to log back in shortly after and send emails. However, the problem I am now experiencing does not show any recaptcha, nor does it say anything about any unknown apps that tried to access the account. It says nothing, and just wont let me log in to my account. I created two new accounts for testing and they worked fine. The account that I created that doesn't work only allowed me to send 17 emails before it blocked my service. Does anyone have any suggestions? Thanks!
Go to your Gmail account setting page and Enable access of Less secure apps. Then try with Java Mail API. Hope it works for you.
Make sure that your JavaMail with google auth is working fine, Check concurrently with Different app. If not post your code
If you're using a free Gmail account, Google might think your bulk email is spam (duh). If you're going to send bulk email, it may be time to pay someone for a business account that will let you do that.

Android, sending a voice message

I’ve built an app for a client that basically sends a standard pre written SMS to the client of my client’s phone asking for them to get in contact. Now the client would like to be able to send a pre recorded voice message to an answering service with the touch of a button, can this be done, firstly from an Android phone.
I’m guessing it can be done because when I search for an answer all I can find are apps that someone else has written that do just that.
Sometimes development tutorials can be hard to find when it comes to apps as you just get a long list of people trying to sell their apps…lol.
Does anyone know of such a tutorial?r
This is not an answer but maybe could help
I once wrote an application like that for a particular answering service for a particular provider in my country. To leave a message on their device I was basically required to compose an e-mail with a message recorded as an mp3 file and included as an attachment to the mail. I then send such mail to a specific mail address of their answering service. I had to supply credentials for the mail to be accepted. Such credentials (login/password) I obtained first by sending a specific port SMS to their service.
For composing mails with attachment I used an opensource IMAP client for Android (as a jar library added to my project). Don't rememeber which client it was but can find out.
I guess there's no common standard for that but basically all the answering services should do something similar.
Sorry if this info is too vague, I was just given the protocol of how that particular answering service was working and implemented accordingly.

Getting device characteristics and network information

I am developing a context aware mobile application. I need to have information about the capabilities of terminal devices and network characteristics such as current bandwidth. My question is, are there APIs in android to access this information?
Thanks.
The better question is, are there APIs for these terminal devices to access the information from outside. Of course you can get the bandwidth of your phone to the provider, but to get that info of the terminal device, you need to access their data.
I would suggest a three-way request for that. At first there is a webservice, in your language of choice, e.x. PHP, which has to get access to the terminal device. That device has to publish their data somehow, so thats the first point you need to know.
Then this webservice cleans the data like you need it and publish it as xml or json or whatever.
Then your App in Android acceess the service to get the info and parse it into your app.
There are alot posts here to find out, how to get a HTTP Request Result. For parsing XML you can find something here:
http://www.ibm.com/developerworks/opensource/library/x-android/index.html
For accessing a network device with a specific port an such stuff, you can use PHP with the function fsockopen()

sms receive on Port 0 of mobile

I am configuring my J2ME app to get an event from the push registry on receipt of an SMS.
Would I be able to access the SMS message, before it reaches the inbox?
I have read that messages sent to port0 of the mobile go directly to native inbox and we can't access it. Is there any way of diverting or even sniffing these messages so as to perform an operation on them from within the J2ME app.
According to this discussion, it is not possible to receive a SMS on port 0 using a MIDlet before it enters the inbox. And while I am not familiar with the
Wireless Messaging API, various other posts seems to indicate that you cannot access the inbox either (I might be wrong on this).
What I think you could do instead is to open a serial connection to the modem part of the phone and listen for an UR code (Unsolicited Response, "events") indicating
that a new SMS is arrived, read it and if it matches your criteria delete it (from the inbox, you still have your copy) using AT commands.
See the AT+CNMA command (New Message Acknowledgement) and similar in the standard (most mobile phone AT commands are by the way specified in 27.007).
For the following I have no idea if if even makes sense/is possible. I only mention it for completeness.
As for processing the SMS before it arrives in the inbox I think the
only option (without it having being sent to a specific port that you listen for) is
SIM application toolkit (which can do a hell of a lot of things), although that is way outside the scope of J2ME and highly obscure and highly un-trivial. Only follow this route if you are really, really desperate.

Categories

Resources