Android 6 android.permission.READ_PHONE_STATE allow on install - android-6.0-marshmallow

I'm using Android 6 with target SDK 23.
I need to accept one permission(READ_PHONE_STATE) on install, like it was before target SDK 23, in google store it shows you permission and you accept it, then app will be installed.
I don't want to use a popup. I need to you use target SDK 23 but without popup of permissions. You will say - it's impossible! But, maybe anybody knows how?
P.S. Normally it should be some flag in AndroidManifest or gradle...
P.S.S : Should be like that below
And not like that below :

if you want that no pop up will be shown or directly setup permissions then you have to do like this:
http://www.howtogeek.com/230683/how-to-manage-app-permissions-on-android-6.0/

Related

How to define firebase-remote-config parameters based on app version

I need to distribute some settings based on the app version e.g. if app version equals "4.0.1" then a else b. I found the possibility to define a condition named "version" but the documentation says it is bound to the package name of the app and not the version or version code.
see here https://firebase.google.com/docs/remote-config/parameters
I tried it though specifying the app version through a "version" condition but it does not work. Any ideas on this would be much appreciated.
The main problem is that Remote config's "Version" is the build number and not the actual version number.
The way I found around this is you can add a "User Property" in Firebase like "app_version". Then when the app launches add the following code:
let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
Analytics.setUserProperty(version, forName: "app_version")
You can then use this User Property in Remote Config as a condition and voila you can base some Remote Config value of of the version number. Note this will require the use of Firebase Analytics as well.
Creating a condition, which targets an app version via regular expression appears to be the only solution in this case.
For my app I use the following configuration:
Here, users who have versions 1.8.* and below receive an alternate version of a backend configuration parameter.
If you need to target only a specific version of the app, then a regular expression is not really necessary, so the approach that you took should work.
Alternatively, you can have far more control if you create a user audience based on app version, and then target the audience.

How to Store user login credential in Xamarin.Form

I want to store the username and password of users locally. i have searched a lot can't find a working solution for Xamarin.forms.I have seen this official site that recommend to use Xamarin.Auth to store in keychain but the tutorial in on platforms specific which i dont know how to convert to Xamarin.Forms.
A little bit help on how to make this to work in Xamarin.Form is very much appreciate.
I have been using the SecureStorage plugin which saves these kinds of settings in the platforms secure storage from the shared code.
There are a couple of things good to know.
iOS
On the Simulator you could run into an issue where values do not get saved. To overcome this open the Entitlements.plist file and make sure that "Enable Keychain Access Groups" is checked. Also ensure that in Project->Options->iOS Bundle Signing, the Entitlements.plist is selected in Custom Entitlements for iPhoneSimulator platform.
Android
You have to set a password when initialising, like this:
SecureStorageImplementation.StoragePassword = "Your Password";
This will be used to encrypt te settings. Make sure you keep it secret and do not change it.
Windows
Same thing as Android, but now call WinSecureStorageBase.StoragePassword = "Your password";
If you have done this, you can now save any setting your like with:
CrossSecureStorage.Current.SetValue(“SessionToken”, “1234567890”);
Which can then be retrieved like this:
var sessionToken = CrossSecureStorage.Current.GetValue (“SessionToken”);
There are some more calls to delete a key and see if a key is present. Don't forget to install the NuGet package on both your shared code as well as your platform projects.
You can check on this link for how to use Xamarin.Auth in Xamarin.Forms.
One more option i would consider is using Akavache which can be used to store the data with same level of security & how to integrate it in Xamarin.Forms check on this link

ODK, Formhub, Enketo pulldata command

I am attempting to create an xls form that uses the "pulldata" command to reference data uploaded in a csv document. ODK provides an example of this here: link.
When I try to upload their example to a website that allows for the hosting of xlsforms via Enketo (Formhub.org or Ona.io) I get the message "Function "{}pulldata" does not exist." However, Ona.io claims that they DO have this functionality in their blog: link 2.
It seems that "pulldata" and the related "search" commands are not supported by Enketo. I imagine they do work in ODK Collect on Android devices.
I would like to use these functions on web forms (not Android devices). Is there a way to get them to work in Enketo or an alternative for hosting xlsforms / x forms online?
Many thanks
Update:
Pulldata() is now supported in the new Enketo app (Enketo Express). It just requires the form to be transformed with a version of pyxform (XLSForm) after September 5th 2015.

Variable issue with urban airship

Titanium SDK version: 1.8.0.1
iPhone SDK version: 4.3
I am building an iOS app using Appcelerator. I try to setup push notifcations for Urban Airship using the official Appcelerator wiki guide: https://wiki.appcelerator.org/display/guides/Push+Notifications+with+Urban+Airship.
First I include the urbanairship.js file into the app.js file.
Ti.include('urbanairship.js');
Then I add these for lines (I replaced my tokens with XXX):
UrbanAirship.key='XXX';
UrbanAirship.secret ='XXX';
UrbanAirship.master_secret='XXX';
UrbanAirship.baseurl = 'https://go.urbanairship.com';
When I run the app in the simulator I get this error:
Script Error = Can't find variable: UrbanAirship at app.js (line 9).
What am I missing?
For anyone stumbling on this one,
You need to declare the variable 'UrbanAirship' before trying to assign values like key, secret, etc.
something like
var UrbanAirship = require('ti.urbanairship');
before typing in
UrbanAirship.key='XXX';
UrbanAirship.secret ='XXX';
UrbanAirship.master_secret='XXX';
UrbanAirship.baseurl = 'https://go.urbanairship.com';
The error message is quite straightforward. The system cannot find the variable because it is not defined.
PS - I believe 'Ti.include' is best used when trying to include .js files and not for modules.

Setting network options in a RCP Application

We have a RCP application that does sometimes get some data from URLs in the internet. Our customer uses a Proxy-Server, and we can't get to the information we need unless the network-settings are correct (Setting IP of Proxy and the Port-Number).
In Eclipse (the IDE), there is the Preferences->General->Network Connections Dialog to set those settings. I managed to include the Preferences Dialog( menu.add(new OpenPreferencesAction(window));, and even to get an option "Network Connections" (By adding a dependency to org.eclipse.ui.net in the plugin-settings.) But when I open the dialog, it says "The currently displayed page contains invalid values." and I can't set any values there.
the log files says: (thanks to VonC)
!ENTRY org.eclipse.jface 4 2 2009-11-09 21:51:39.798
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
java.lang.NoClassDefFoundError: org/eclipse/core/internal/net/ProxySelector
at org.eclipse.ui.internal.net.ProxyEntriesComposite.initializeValues(ProxyEntriesComposite.java:248)
at org.eclipse.ui.internal.net.ProxyEntriesComposite.createWidgets(ProxyEntriesComposite.java:130)
at org.eclipse.ui.internal.net.ProxyEntriesComposite.(ProxyEntriesComposite.java:57)
at org.eclipse.ui.internal.net.ProxyPreferencePage.createProxyEntriesComposite(ProxyPreferencePage.java:81)
at org.eclipse.ui.internal.net.ProxyPreferencePage.createContents(ProxyPreferencePage.java:54)
at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:235)
Does someone know a way to tell an eclipse-RCP application what network settings to use, either by using the preference page, by manual coding, or by using some configuration files?
Looks like I finally got it:
How to make setting the network configuration by the preference page possible in an RCP-Application in windows 32 bit:
Put the packages org.eclipse.ui.net, org.eclipse.core.net and org.eclipse.core.net.win32.x86 into your target plattform and add dependencies to the first two of these in your Manfifest.MF
Make sure you have compatible versions (That was my mistake, I had an old version of org.eclipse.net.win32.x86). For example, get the all three files from your Galileo Eclipse IDE
In your ActionBarAdvisor class, add: menu.add(new OpenPreferencesAction(getActionBarConfigurer().getWindowConfigurer()
.getWindow()));
Putting some DLL-files somewhere on the harddrive is not nessesary!
Howto use eclipse network options in your own plug-in (tested win32):
add jars: org.eclipse.core.net and org.eclipse.ui.net
add jWinHttp-1.0.0.dll (extraced from org.eclipse.core.net.win32.x86) to a directory
that is on the windows path (e.g. c:\windows).
Maybe it is also possible to pass a system property to search the dll at a specific location.
Now you can use the net api.

Resources