camera_normal

Creator: coderz1093

Last updated:

0 purchases

camera_normal Image
camera_normal Images

Languages

Categories

Add to Cart

Description:

camera normal

camera_normal #

A Flutter plugin for iOS, Android allowing access to the device cameras.




Android
iOS




Support
SDK 21+
iOS 12.0+












iOS #
Add two rows to the ios/Runner/Info.plist:

one with the key Privacy - Camera Usage Description and a usage description.
and one with the key Privacy - Microphone Usage Description and a usage description.
and one with the key Privacy - Photo Library Usage Description and a usage description.

If editing Info.plist as text, add:
<key>NSCameraUsageDescription</key>
<string>your usage description here</string>
<key>NSMicrophoneUsageDescription</key>
<string>your usage description here</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>In order to access your photo library</string>
copied to clipboard

Minimum iOS Deployment Target: 12.0
Xcode 13.2.1 or newer
Swift 5
ML Kit does not support 32-bit architectures (i386 and armv7). ML Kit does support 64-bit architectures (x86_64 and arm64). Check this list to see if your device has the required device capabilities. More info here.

Since ML Kit does not support 32-bit architectures (i386 and armv7), you need to exclude armv7 architectures in Xcode in order to run flutter build ios or flutter build ipa. More info here.
Go to Project > Runner > Building Settings > Excluded Architectures > Any SDK > armv7



Your Podfile should look like this:
platform :ios, '12.0' # or newer version

...

# add this line:
$iOSVersion = '12.0' # or newer version

post_install do |installer|
# add these lines:
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=*]"] = "armv7"
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
end

installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)

# add these lines:
target.build_configurations.each do |config|
if Gem::Version.new($iOSVersion) > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
end
end

end
end
copied to clipboard
Notice that the minimum IPHONEOS_DEPLOYMENT_TARGET is 12.0, you can set it to something newer but not older.
Android #
Change the minimum Android sdk version to 21 (or higher) in your android/app/build.gradle file.
minSdkVersion 21
copied to clipboard
If you're not setting your compileSdkVersion or targetSdkVersion to 29,
you can skip this section.
On Android 10, Scoped Storage was introduced,
which causes the origin resource file not directly
inaccessible through it file path.
If your compileSdkVersion or targetSdkVersion is 29,
you can consider adding android:requestLegacyExternalStorage="true"
to your AndroidManifest.xml in order to obtain resources:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.fluttercandies.photo_manager_example">

<uses-permission android:name="android.permission.FLASHLIGHT"/>

<uses-feature
android:name="android.hardware.camera"
android:required="true"/>

<application
android:label="example"
android:name="${applicationName}"
android:requestLegacyExternalStorage="true"
android:icon="@mipmap/ic_launcher">
</manifest>
copied to clipboard
Kotlin, Gradle, AGP
We ship this plugin with Kotlin 1.7.22.
If your projects use a lower version of Kotlin/Gradle/AGP,
please upgrade them to a newer version.
More specifically:

Upgrade your Gradle version (gradle-wrapper.properties)
to 7.5.1 or the latest version.
Upgrade your Kotlin version (ext.kotlin_version)
to 1.7.22 or the latest version.
Upgrade your AGP version (com.android.tools.build:gradle)
to 7.2.2 or the latest version.

Example #
import 'dart:io';

import 'package:camera_normal/camera_custom.dart';
import 'package:camera_normal/components/language.dart';
import 'package:flutter/material.dart';

void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}

class MyApp extends StatelessWidget {
const MyApp({super.key});

@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo Camera',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: false,
),
home: const MyHomePage(),
);
}
}

class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});

@override
State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
String content = "";

@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(content),
),
FilledButton(
onPressed: () async {
final result = await CameraNormal().show(context, CameraLanguage());
setState(() {
content = result ?? '';
});
},
child: const Text('Camera normal'),
),
FilledButton(
onPressed: () async {
final result = await CameraQr().show(context);
setState(() {
content = result ?? '';
});
},
child: const Text('Camera QR'),
),
FilledButton(
onPressed: () async {
final path = await CameraTakeCIC().show(context);
if (path is String && context.mounted) {
showDialog(
context: context,
builder: (context) => Dialog(
child: Image.file(File(path)),
),
);
}
},
child: const Text(
'Camera take CIC',
textAlign: TextAlign.center,
),
),
CameraCustom(
cameraView: CameraView(),
builder: (context, cameraView) {
return Container(
color: Colors.blue,
width: 300,
height: 500,
child: Stack(
children: [
SizedBox(
width: 250,
height: 400,
child: cameraView,
),
],
),
);
},
),
],
),
),
);
}
}

copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.