About camera settings in xamarin forms

木幡 弘文 1 Reputation point
2021-11-09T09:56:00.983+00:00

I'm running an app created with xamarin forms on an Android device. Even if the location information is turned on with the Android standard camera app, it will be turned off when the camera is called with the created app. Where to check

↓ Set location information to ON with the Android standard camera app
147791-default.png

↓ When you start the camera with the created app, the location information is turned off
147772-original.png

■AndroidManifest.xml

<uses-permission android:name="android.permission.CAMERA" />  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
    <uses-permission android:name="android.permission.VIBRATE" />  
    <uses-permission android:name="android.permission.INTERNET" />  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />  
    <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />  

■AssemblyInfo.cs

[assembly: UsesPermission(Android.Manifest.Permission.Internet)]  
[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]  
[assembly: UsesPermission(Android.Manifest.Permission.AccessCoarseLocation)]     
[assembly: UsesPermission(Android.Manifest.Permission.AccessFineLocation)]      
[assembly: UsesFeature("android.hardware.location", Required = false)]      
[assembly: UsesFeature("android.hardware.location.gps", Required = false)]      
[assembly: UsesFeature("android.hardware.location.network", Required = false)]      
[assembly: UsesFeature("android.hardware.camera", Required = false)]      
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]      
[assembly: UsesPermission(Android.Manifest.Permission.Vibrate)]      
[assembly: UsesPermission(Android.Manifest.Permission.AccessNetworkState)]      
[assembly: UsesPermission(Android.Manifest.Permission.AccessMediaLocation)]      
[assembly: UsesPermission(Android.Manifest.Permission.ReadExternalStorage)]  

■camera

private async void OnImageClicked()  
{  
  
    try  
    {  
  
        await Plugin.Media.CrossMedia.Current.Initialize();  
  
        if (!Plugin.Media.CrossMedia.Current.IsCameraAvailable || !Plugin.Media.CrossMedia.Current.IsTakePhotoSupported)  
        {  
            return;  
        }  
  
        DateTime dt = DateTime.Now;  
        string result = dt.ToString("yyyyMMddHHmmss");  
        result += ".jpg";  
  
        Plugin.Media.Abstractions.MediaFile file = await Plugin.Media.CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions  
        {  
            Name = result  
        });  
  
        if (file == null)  
        {  
            return;  
        }  
  
        Queue<byte> bytes = new Queue<byte>();  
        using (Stream s = file.GetStream())  
        {  
            long length = s.Length;  
            int b;  
            while ((b = s.ReadByte()) != -1)  
            {  
                bytes.Enqueue((byte)b);  
            }  
        }  
  
        File.Copy(file.Path, "XXXXXXXXXXXX/Pic");  
  
        file.Dispose();  
  
    }  
    catch (Exception)  
    {  
    }  
}  
Xamarin
Xamarin
A Microsoft open-source app platform for building Android and iOS apps with .NET and C#.
5,294 questions
{count} votes