你的應用程式目前的目標 API 等級是 24,但最低目標 API 等級必須為 26,才能確保應用程式採用最新的 API,讓安全性與執行效能達到最佳狀態。請將最低目標 API 等級調整為 26。
天啊Google 硬起來了,強制APP的目標版本一定要26 (Android 8.0) ,瘋狂的 8.0 高版本
Xamarin 開發的權限在AndroidManifest.xml 幾乎完全失效,就算有寫權限還是沒開,幹。
變得必須要強制跳出使用者點選同意的視窗,才能取得權限
這時候解救方法就是
先在專案按下右鍵,選擇 [管理NuGet套件]
搜尋 Xamarin.Android.Support.v7.AppCompat
如果遇到如下錯誤
嚴重性 程式碼 說明 專案 檔案 行 隱藏項目狀態
錯誤 無法安裝封裝 'Xamarin.Android.Support.v7.AppCompat 28.0.0'。您正嘗試將此封裝安裝到以 'MonoAndroid,Version=v5.1' 為目標的專案,但該封裝不包含任何與架構相容的組件參考或內容檔。如需詳細資訊,請連絡封裝作者。 0
請[專案\屬性]更改如下地方,需超越Android 6.0,且需要重新啟動 Visual Studio 重要
如下程式碼可以開啟強制取得權限,可加於OnCreate中
const int RequestLocationId = 0;
string[] PermissionsLocation =
{
Android.Manifest.Permission.AccessCoarseLocation,
Android.Manifest.Permission.AccessFineLocation
};
ActivityCompat.RequestPermissions(this,PermissionsLocation, RequestLocationId);
在MainActivity 後面加入 ActivityCompat.IOnRequestPermissionsResultCallback
如下
public class MainActivity : Activity, ActivityCompat.IOnRequestPermissionsResultCallback
這邊接收使用者給予權限了沒,沒給權限不給使用。
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
switch (requestCode)
{
case RequestLocationId:
{
if (grantResults[0] == Permission.Denied)
{
Toast.MakeText(this, "需要權限才能使用", ToastLength.Long).Show();
this.FinishAffinity();
}
}
break;
}
}
留言
張貼留言