XAML in Xamarin.Forms 基礎篇 電子書

XAML in Xamarin.Forms 基礎篇 電子書
XAML in Xamarin.Forms 基礎篇 電子書

Xamarin.Forms 快速入門 電子書

Xamarin.Forms 快速入門 電子書
Xamarin.Forms 快速入門 電子書

2017/01/22

Xamarin FAQ 1-21 : 關於 Android 的自動加入權限設定問題

問題

當在進行行動裝置應用程式開發的時候,若您的應用程式需要使用到裝置中的硬體等相關功能,此時,您需要手動修改 AndroidManifest.xml 檔案,並且,您需要知道這些權限的名稱並且填入到這個檔案內,有沒有甚麼更加簡單的方法來處理這樣的問題。

解答

  • 您可以打開 Android 原生專案內的內容,在 Android 原生專案中,說擊 Properties 這個節點,並且找到 Android Manifest 葉面,您將會看到下方有 Required permissions 清單,您可以在這裡勾選您需要用到的權限。
  • 現在,越來越多的 Xamarin.Forms 套件,當您加入到 Xamarin.Forms 專案內後,一旦您建置 Release 模式的 APK 檔案,這些套件會用到的權限便會自動加入到 AndroidManifest.xml 檔案內。若您擔心是否需要用到的權限是否有加入到 AndroidManifest.xml 檔案內,可以參考底下的說明:
    假設這個專案是 XFTakePhoto,您可以打開這個專案下的目錄 XFTakePhoto\XFTakePhoto\XFTakePhoto.Droid\obj\Release\android 查看這個檔案 AndroidManifest.xml
    您將會看到這個拍照應用程式,自動加入了這些權限 android.permission.INTERNET / android.permission.WRITE_EXTERNAL_STORAGE / android.permission.READ_EXTERNAL_STORAGE / android.hardware.camera / android.hardware.camera.autofocus
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="XFTakePhoto.Droid" android:versionCode="1" android:versionName="1">
  <!--suppress UsesMinSdkAttributes-->
  <uses-sdk android:minSdkVersion="19" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-feature android:name="android.hardware.camera" android:required="false" />
  <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
  <application android:label="XFTakePhoto.Droid" android:theme="@style/MyTheme" android:icon="@drawable/icon" android:name="md5a568f8c57b5f8a80d01f31a0c4f56c56.MainApplication" android:allowBackup="true">
    <activity android:configChanges="orientation|screenSize" android:icon="@drawable/icon" android:label="XFTakePhoto" android:name="md5a568f8c57b5f8a80d01f31a0c4f56c56.MainActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity android:configChanges="orientation|screenSize" android:name="md5a3e164e78ade0c22cefea770ddd0bc49.MediaPickerActivity" />
    <provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="2147483647" android:authorities="XFTakePhoto.Droid.mono.MonoRuntimeProvider.__mono_init__" />
  </application>
</manifest>

沒有留言:

張貼留言