Simple cross platform plugin to take photos or pick them from a gallery from shared code
Setup for iOS project
Add to AppDelegate before LoadApplication
SupportMediaXFSetup.Initialize();
Add privacy to info.plist
- Privacy - Camera Usage Description
- Privacy - Photo Library Usage Description
Setup for Android project
Add to MainActivity before LoadApplication
SupportMediaXFSetup.Initialize(this);
Add permisison to manifest
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera2.full" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
Create new file_paths file in xml Resource then Add provider in application tag
<provider android:authorities="[Your application package]"
android:exported="false"
android:grantUriPermissions="true"
android:name="android.support.v4.content.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" />
</provider>
-
Implements interface to your viewmodel to receive photos
ISupportMediaResultListener
-
Open Camera to Gallery by
DependencyService.Get().IF_OpenCamera(this, new SyncPhotoOptions(), [Code Request]);
public class SyncPhotoOptions
{
public int Width { set; get; }
public int Height { set; get; }
public float Quality { set; get; }
public SyncPhotoOptions()
{
Width = 1280;
Height = 960;
Quality = 0.8f;
}
}
Android | ||
iOS | ||