2016-08-03 60 views
0

我通過運行ionic platform rm android清除了我的離子目錄,然後用add命令添加了它。爲什麼「離子平臺添加android」會自動爲android.permission.GET_ACCOUNTS添加權限

不知何故,platforms\android\android.jsonplatform\android\AndroidManifest.xml顯示意外

 "AndroidManifest.xml": { 
      "parents": { 
       "/manifest": [ 
        { 
         "xml": "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\" />", 
         "count": 1 
        }... 
       ] 
      } 
     } 

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

哪裏這些從何而來?

我​​3210只有這些:

<preference name="webviewbounce" value="false"/> 
    <preference name="UIWebViewBounce" value="false"/> 
    <preference name="DisallowOverscroll" value="true"/> 
    <preference name="android-minSdkVersion" value="19"/> 
    <preference name="android-targetSdkVersion" value="21"/> 
    <preference name="BackupWebStorage" value="none"/> 
    <preference name="SplashScreen" value="screen"/> 
    <preference name="FadeSplashScreen" value="true"/> 
    <preference name="ShowSplashScreenSpinner" value="false"/> 
    <preference name="SplashScreenDelay" value="3000"/> 
    <preference name="webContentsDebuggingEnabled" value="true"/> 
    <preference name="AndroidPersistentFileLocation" value="Compatibility"/> 

文件package.json列出了這些插件(做一個插件自動生成一定的權限要求?)

"cordovaPlugins": [ 
    "cordova-plugin-device", 
    "cordova-plugin-console", 
    "cordova-plugin-whitelist", 
    "cordova-plugin-splashscreen", 
    "cordova-plugin-statusbar", 
    "ionic-plugin-keyboard", 
    "cordova-plugin-vibration", 
    "cordova-plugin-dialogs", 
    { 
     "locator": "https://github.com/whiteoctober/cordova-plugin-app-version.git", 
     "id": "cordova-plugin-app-version" 
    }, 
    { 
     "locator": "https://github.com/VersoSolutions/CordovaClipboard.git", 
     "id": "com.verso.cordova.clipboard" 
    }, 
    "cordova-plugin-email-composer" 
    ], 

我在Windows 10專業版(本書雖然ionic info顯示Windows 8.1),使用Cordova CLI 6.3.0,Ionic CLI 1.7.16,Node v0.12.7。

回答

2

要回答你的問題,這與Ionic框架無關。此權限是通過您在項目中添加的電子郵件作曲家插件自動添加的。這是爲了訪問設備中配置的電子郵件帳戶來發送電子郵件。

已通過在我的cordova barebone項目中添加電子郵件作曲者插件進行驗證。它確實在AndroidManifest.xml中添加<uses-permission android:name="android.permission.GET_ACCOUNTS" />,您也可以通過刪除此插件來檢查它。希望是幫助。

+1

如果我手動刪除此權限,該怎麼辦?恕我直言,這應該是一個諮詢,而不是具體的注射 - 我不希望任何人相信我的應用程序*捕獲*他們的聯繫人。順便說一句+1你的方法! – Dinesh

+0

@Dinesh手動刪除權限不是可取的,因爲它可能會導致嘗試使用電子郵件插件時出現問題,並再次讀取插件將此權限返回到XML文件 – Gandhi

+1

不,手動刪除沒有造成任何問題。但我擺脫了這個插件,而是增加了'cordova-plugin-email',它沒有添加這個perm。我相信默默地添加新的權限是錯誤的*要做的事情。 – Dinesh

1

目前(2月2017年,科爾多瓦6.5.0),它看起來像科爾多瓦,插件,郵件安裝科爾多瓦 - 插件 - 電子郵件 - 作曲家添加插件科爾多瓦插件添加科爾多瓦,插件,郵件

如果用Dinesh所描述的非cordova-plugin-email替換cordova-plugin-email-composer不適合你,那麼你應該看看platforms/android/android.json你可以找到以下內容:

"AndroidManifest.xml": { 
       "parents": { 
        "/manifest": [ 
         { 
          "xml": "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\" />", 
          "count": 2 
         } 
        ] 
       } 
      } 

如果你刪除了這個(和rund cordova prepare),你將不會在清單文件中找到該行。

經過測試的應用程序打開電子郵件客戶端與預充滿收件人,主題和正文,gmail打開我的Android 4設備罰款。

相關問題