2020-02-18 01:09:43.567 4919-11220/? E/SignInAuthenticator: **** **** APP NOT CORRECTLY CONFIGURED TO USE GOOGLE PLAY GAME SERVICES **** This is usually caused by one of these reasons: **** (1) Your package name and certificate fingerprint do not match **** the client ID you registered in Developer Console. **** (2) Your App ID was incorrectly entered. **** (3) Your game settings have not been published and you are **** trying to log in with an account that is not listed as **** a test account. **** **** To help you debug, here is the information about this app **** Package name : 모자이크 **** Cert SHA1 fingerprint: 모자이크 **** App ID from manifest : 모자이크 **** **** Check that the above information matches your setup in **** Developer Console. Also, check that you're logging in with the **** right account (it should be listed in the Testers section if **** your project is not yet published). **** **** For more information, refer to the troubleshooting guide: **** http://developers.google.com/games/services/android/troubleshooting ****
This repository allows to send local notification from unity project on android devices.
Features
you can send local notification in android
you can schedule sending notification for some time in future
you can send notification having big picture style
Issues
not all android notification features are supported
Sample code
Publisher publisher = PublisherManager.Instance.CreatePublisher(channelId, channelName, channelDescription); // put your icon png file in Plugins/Android/UnityLocalNotification/res/drawable Notification notification = new Notification() .SmallIconName("test_icon") .Title("My notif title") .Message("This is a test notification message"); publisher.Publish(notification);
READ_PHONE_STATE Permission isn’t in my Manifest or Plugins!
Unity automatically adds theREAD_PHONE_STATEpermission into builds when either:
Your scriptscontain code which require the permission.
Thetarget SDK version isn’t set(or set below 4)which causes the manifest merger to assume the SDK version is lower than 4 and the system will implicitly grant the READ_PHONE_STATE permission to the app.(in later versions of Unity 5 and Unity 2017 the target SDK version is now set in the editor making managing it much easier)
You have aplugin in your project which has its own manifest filerequesting the permission(the manifest can be contained within your jar or aar files, they’re not always simply in your project) –Note that if a plugin is requesting a permission then it’s probably required and may cause issues if removed, check the plugin documentation if you’re unsure!
Code which causes Unity to automatically add the permission
In the case of your scripts containing code which need the permission. Unity automatically adds the permission when using functions which require it.
SomeSystemInfoproperties such asSystemInfo.deviceUniqueIdentifierrequire the READ_PHONE_STATE permission so referencing it in a script will force Unity to add it.
As an alternative to SystemInfo.deviceUniqueIdentifier when needing a unique device identifier and it’s not important to keep it the same between wiping save data. Consider generating a unique value based onSystem.DateTime.Now.Ticksand storing in the playerprefs instead.
Why am I asked to allow/deny the permission at app launch?
Starting with Android 6.0 the user was given more control over permissions apps were allowed to use at runtime; rather than a blanket list of confusing permission being included with the app at installation. Permissions which are prompted for the user to allow are classified asdangerous permissionsas they can allow the app to access sensitive data.(in this case READ_PHONE_STATE can allow reading of the phone number, call statuses or listphone accountsregistered on the device)
If you want to manually control when the permissions are requested at runtime rather than all dangerous permissions just being prompted at startup then you can add: <meta-data android:name=”unityplayer.SkipPermissionsDialog” android:value=”true” /> Between the <application> tags of your manifest file.
With the permission dialog skipped all dangerous permissions will remain defaulted as denied! But this allows you to request permissions manually when you need them, rather than all at once at app launch.(However note that you’ll either need to write a Java plugin yourself to control this or find an already built plugin from the store such asAndroid Buddywhich fits this exact purpose!)
Learn more about the READ_PHONE_STATE android permission!
There are three ways permissions get added to your project.
They are specified in an Android Manifest file.
They are specified in library (a .aar file).
Unity adds the permission when you use a certain feature. (Added)
My examples use command-line tools on a Mac. I don't know Windows equivalents, but it is possible to find and run unix tools there (using the linux subsystem for windows 10, cygwin, custom binaries, etc.)
1. Find all permissions used in (uncompressed) Android Manifests.
cd /path/to/my/project/Assets grep -r "uses-permission"--include "AndroidManifest.xml".
This will find all files named AndroidManifest in the current folder (.) or any of its subfolders (-rtells it to search recursively) and spit out any line with the words 'uses-permission'.
In my current project, I get output something like this:
2. Find the permissions required in Android Libraries
Your project likely contains android libraries (.aar files) and java archives (.jar files). Some android libraries contain an android manifest and specify permissions needed to use the library. (I don't think .jar files actually do this, but .aar files absolutely do). Both .aar and .jar files are .zip files, with a different extension and with specific metadata in specific places.
Here's what this does. It finds any file (in the current folder (.) and its subfolders) has an extension of (something) a r, thus .jar, or .aar (-name "*.?ar"). It outputs the archive's file name (-print). It then runszipgrep(-exec). Zipgrep is told to search through any files in the archive ({}) named "AndroidManifest.xml", and output any line with the words "uses-permission". We then pipe the errors to the bit bucket (2> /dev/null) so we don't see lots of errors about archives that don't have android manifests in them.
The filenames all start with periods. I can thus see, for example, that the onesignal-unity.aar sets several permissions, several .jar files were searched with no permissions inside them, and some of the play services libraries specify permissions.
If I needed to change a library, I could rename the .aar to .zip, extract it, edit it, compress it, and rename it back. (It isn't necessarily wise to change the permissions inside a library, but possible.)
3. Unity Adds the Permission
I didn't have anything to add on this; as said above, if you use the Microphone API, Unity will add a permission for you so your app will work.
However, I've since realized that you can do the following:
bring up the Build Settings for Android
tick the 'Export Project' box
Export the project, noting the location
go to /my/project/export/src/main/AndroidManifest.xml. This is what Unity emits for the android manifest (before google's tools do all the merging).
compare it (using your favourite diff tool) to Assets/plugins/Android/AndroidManifest.xml; the differences come from Unity.