android izinleri hakkında bir kaç soru işareti var kafamda cevaplayan olursa sevinirim. uygulamamda google Firebase veritabanı hizmetlerini, telefonun mesajlaşma uygulamasını, kamerasını, galerisini, internetini, rehberini kullanıyorum. Geliştirme aşamasındayken bunları ilk kullanmak için hep izin istedi ve ben de verdim sonrasında da sorunsuzca özellikleri kullandım ama AndroidManifest.xml
e baktığımda gerekli izinlerin yazmadığını gördüm. Mesela
<uses-permission android:name=”android.permission.INTERNET” />
olmadan interneti yada
<uses-permission android:name=”android.permission.CAMERA” />
olmadan kamerayı telefonumdan rahatça kullanabiliyorum. zaten manifest dosyamı atıcam aşağıya. Geliştirme aşamasında manifestte izin verilmese bile kullanım olabiliyormuş onu gerek buradan gerek başka sitelerden öğrendim. şimdi sorularım şunlar:
apk oluştururken manifest dosyasına izinleri tanımlamam gerekiyor mu?
gerekiyorsa yukarıda belirttiğim özellikleri kullanabilmem için hangi izinleri tanımlamam gerekiyor?
vermeyi unuttuğum izin olursa apk oluştururken uyarısı çıkıyor mu?
eğer izinleri almadan apk oluşursa ve bu yüzden kullanamadığım bir özellik olursa sonradan izni vererek yeniden apk oluşturabilir miyim? Şimdiden teşekkürler AndroidManifest.xml
dosyam aşağıdaki gibidir:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="meb.sby_cpal_demo">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="sby_cpal_demo"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<!-- Displays an Android View that continues showing the launch screen
Drawable until Flutter paints its first frame, then this splash
screen fades out. A splash screen is useful to avoid any visual
gap between the end of Android's launch screen and the painting of
Flutter's first frame. -->
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest>