我正在使用Xamarin構建一個Android應用程序。 Visual Studio中允許您指定爲Android的目標和最低SDK水平,這似乎能夠正常工作,如反編譯的APK顯示了manifest
標籤的AndroidManifest.xml
這些屬性:Android如何知道應用程序指向哪個API?
platformBuildVersionCode="25" platformBuildVersionName="7.1.1"
請不,這不是清單文件項目,而是清單文件捆綁在最終應用中。後者沒有uses-sdk
的值。
但是,我似乎並沒有在運行時獲得預期的功能來定位此版本。具體而言,應用程序從不要求運行時權限(在API 23 IIRC介紹),並且當您嘗試撤銷對應用程序權限,你得到這個消息:
這個程序是專爲較舊版本的Android 。拒絕許可可能導致它不再按預期運行。
在API 23上運行的幾個設備上已經注意到了這一點,包括一個Pixel,它應該運行Android庫,並且在檢測SDK版本時沒有問題。
如果Android沒有使用清單值,Android如何決定我要定位哪個SDK版本?如何確保我的應用程序在運行時可以訪問API 23功能?
這些並不是用來確定目標和最小SDK的屬性。 'targetSdk'和'minSdk'屬性說的是什麼? C.F. https://developer.android.com/guide/topics/manifest/uses-sdk-element.html –
也許我應該澄清一下:這些不是預編譯AndroidManifest中的值,而是捆綁在APK中的AndroidManifest。我將清單與另一個按預期工作並找到類似屬性的應用進行了比較。 –
正確,但'uses-sdk'元素仍然存在。理論上,它應該與你在文章中引用的兩個屬性相匹配 - 但是,由於你沒有看到預期的結果,我們必須考慮到可能存在一些差異。 –