How to integrate Zoom Meeting SDK in MAUI Android and Windows - xamarin.android

I am trying to integrate Zoom SDK in MAUI for both Android and Windows
I am using Xamarin tutorials to integrate for Android as I didn't found any code reference for MAUI.
I tried but it is not working and my App is crashing after Join Metting and giving the error:
[ame.zoomsdkpro] java_vm_ext.cc:579] JNI DETECTED ERROR IN APPLICATION: JNI CallIntMethodV called with pending exception java.lang.SecurityException: getCallState: Neither user 10154 nor current process has android.permission.READ_PHONE_STATE.
My Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:allowBackup="true" android:icon="#mipmap/appicon" android:roundIcon="#mipmap/appicon_round" android:supportsRtl="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.Manifest.permission.READ_PHONE_STATE" />
</manifest>

The android.permission.READ_PHONE_STATE is a dangerous permission. You need to not only declare it in the Manifest file, but also request it in the run time.
So you can use the following code to request the permission on the android:
# if ANDROID
var status = await Permissions.RequestAsync<Permissions.Phone>();
# endif
For more information,you can check the official document about the permissions.

Related

Nativescript webview set permission for mediaDevices.getUserMedia

I am using Nativescript webview to run my web-app. But have problem when trying to do:
navigator.mediaDevices.getUserMedia({
audio: true,
video: false
}).then(function (stream) {
Anybody know how to set permission for WEBRTC related functions?
Thanks a lot!
Note:
it's for android and I have search for few hours but it seems no complete explanation about requesting permission, unlike for android studio (like this one: https://developer.android.com/reference/android/webkit/WebSettings).
the web-app is running well under google chrome.
Finally it works, but I am using standard java (android studio without the IDE), the most important parts are:
use webchromeclient.
set permission: android.webkit.resource.AUDIO_CAPTURE.
manifest:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.MICROPHONE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.audio.low_latency" />
<uses-feature android:name="android.hardware.audio.pro" />
<uses-feature android:name="android.hardware.microphone" android:required="true"/>

Xamarin: Java.IO.IOException Message=Cleartext HTTP traffic to myapi.azurewebsites.net not permitted

I recently upgraded to the latest version of Xamarin 4.5.0.356. This forced me to change my Android build version to 9.0.
Since then, whenever I call my test Api I get:
Java.IO.IOException Message=Cleartext HTTP traffic to myapi.azurewebsites.net not permitted
I realise that API's should all be httpS but this is a test one (owned by me).
I searched the web (stack overflow) and it was suggested that I add the following to AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<application android:networkSecurityConfig="#xml/network_security_config" />
</manifest>
and then add a Resources/xml/network_security_config.xml file containing the following:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">myapi.azurewebsites.net</domain>
</domain-config>
</network-security-config>
However, I still get the error on the first call to the API. (iOS version works fine)
Anyone have any ideas?
Try add a base-config in your network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">myapi.azurewebsites.net</domain>
</domain-config>
</network-security-config>

Cordova FCM notifcations not received on IOS, While app is in background

I'm using these plugin on cordova#8.1.2:
<plugin name="cordova-plugin-device" spec="^1.1.6" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
<plugin name="cordova-plugin-wkwebview-engine" spec="^1.1.4" />
<plugin name="cordova-plugin-inappbrowser" spec="https://github.com/apache/cordova-plugin-inappbrowser" />
<plugin name="cordova-plugin-firebase"
spec="git+https://github.com/dpa99c/cordova-plugin-firebase.git#GH-1057-April-05-android-build-issue" />
<plugin name="cordova-plugin-network-information" spec="^2.0.1" />
<plugin name="cordova-plugin-androidx" spec="^1.0.2" />
<plugin name="cordova-plugin-androidx-adapter" spec="^1.0.2" />
I've tried many different guides, I'm using legacy Build, set the p8 key on firebase for APN and in Android FCM messaging works smoothie. On IoS I can receive it only when the app is in the foreground.
I think the problem is related to "Disconnected from FCM" string. I obtain this log whenever I close or I switch my App.
You are using my old fork of cordova-plugin-firebase (https://github.com/dpa99c/cordova-plugin-firebase.git#GH-1057-April-05-android-build-issue) which is only a partial fix for that plugin's multiple unresolved issues.
Please try using my fork of that plugin - cordova-plugin-firebasex - which resolves numerous issues with FCM notifications and adds new functionality.
Note: the latest version - cordova-plugin-firebasex#5.0.0 - contains breaking changes such that the API is no longer the same as cordova-plugin-firebase. If you decide to migrate, please read the documentation carefully.

background geolocation mauron85 app crashes after installing apk

I had the same issue referred on this link. So to resolve the issue i did what klaus-donnert did,and also went here to download the latest plugin.... below is my xml file:
<preference name="phonegap-version" value="cli-6.4.0" />
<plugin name="cordova-plugin-mauron85-background-geolocation" spec="^2.2.5">
<variable name="ALWAYS_USAGE_DESCRIPTION" value="This app requires background tracking enabled to calculate the distance between you and Ecocompub partners" />
</plugin>
Next step was to test the app on my android, so after uploading the zip on phonegap.build, i read the qr code as usual, and .... the app crashed! it opens for a few seconds, but then closes...if i simply don´t use the plugin, the app runs well...does anybody experienced this problem?, i´m completely stuck.
Regards
So to help others that might have the same situation, the problem is NOT with the background mauron85 plugin, it was with my phonegap-plugin-push which was outdated since i was using cli-6.4.0...so if you want to use both plugins, you have to have on your xml file the following:
for background geolocation mauron85 plugin:
<preference name="phonegap-version" value="cli-6.4.0" />
<plugin name="cordova-plugin-mauron85-background-geolocation" spec="^2.2.5">
<variable name="ALWAYS_USAGE_DESCRIPTION" value="set this value, otherwise apple will refuse your app" />
</plugin>
for push-plugin from here:
<plugin name="phonegap-plugin-push" spec="1.8.4" source="npm">
Regards.

ionic $cordovaGeolocation always requests permission for location access

I am running ionic and the ngCordova geolocation wrapper.
Here is a snippet from a controller using the plugin:
$ionicPlatform.ready(function () {
$cordovaGeolocation
.getCurrentPosition({timeout: 10000, enableHighAccuracy: false})
.then(permissionGranted)
.catch(permissionNotGranted)
.then(loadGmap)
.catch(handleGmapLoadError);
});
I run my app using:
ionic run ios --device
As the app comes up, I am asked permission to access the location of the phone as expected. I acknowledge it and my controller loads my location in google maps. I see the permission set in my ios settings reflect the setting made. when I open the app the second time, it asks again. This was unexpected behavior.
Most apps don't ask again and again. Has any one else seen this behavior and know what I should do?
you can try to add the permission in the config file (app/platforms/android/res/xml/config.xml)
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.GeoBroker" />
</feature>
and in the(app/platforms/android/AndroidManifest.xml)
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

Resources