跳到主要內容

Google play 強制API 等級 26 Xamarin解決方法 強制跳出視窗取得權限

你的應用程式目前的目標 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;
            }
        }







留言

這個網誌中的熱門文章

使用藍牙BLE 讓iphone android 連接樹莓派3 raspberry pi 3

        Raspberry PI 3 終於內建藍牙與網路晶片 這個晶片有點強大,可以 同時 讓Wifi 與 BLE 和 SPP (RF Com) 同時繁忙通訊都沒有問題。        Raspberry PI 如果是當成藍牙Client 連結身邊的BLE裝置,例如ibeancon、智慧手環、智慧手錶,那只要使用簡單hcitool搭配hciconfig 指令就可以達到將資料要回來,在網路關鍵字一下就可以找到如何使用hcitool 連線並要得資料。      手機要與 Raspberry PI連線的方法可以透過,wifi 或是藍牙,但是操作上使用藍牙比較直覺與簡易。但是要讓手機連線 Raspberry PI, Raspberry PI上就需要將藍牙裝置當成Server,這件事情就需要一些程式碼上的撰寫。     現在的文件說到關於如何將 Raspberry PI藍牙裝置當成Server的文章並不太多,開發上總感覺困難重重,我也是在這裡停滯了好多天,不斷的搜尋解決方法,因為通起來了,資料來自網路所以也回饋給網路,讓下一個使用者減少這類問題的負擔。 不過目前這個方法未來開發資源越來越齊備可能不敷使用,但至少現在是可用的備案。     網路上搜尋之後,整體套件如下 藍牙硬體<== BlueZ <== Nodejs(Bleno) <== Node Ble <==  Node  Socket  <==你的程式 我們發現藍牙要動起來通常會倚賴BlueZ的套件,好在的是最新的版作業系統已經將BlueZ提升到5.23,支援BLE了。 所以安裝BlueZ套件這件事情就可以省略。        接著安裝 Node 環境 , http://blog.itist.tw/2016/04/using-raspberry-pi-3-to-build-eddystone-beacons-with-raspbian-jessie.html 於這篇網址提到安裝Node的快速方法,如...

四軸飛行器:飛控板DIY

最近 我有時會問自己為什麼要從Arduino 開始弄非控板,而不去買已經整體弄好的Multiwii 非控板,其實主要是自己組裝出來的樂趣, 學習過程中嘗試透過各種資源與方法解決問題的能力 ,其實MAKER的資源很多,但怎麼應用這些資源裁示值得學習的,凌爸學習東西喜歡直接做,做的過程當中,自然就會了解WHY與HOW,這遠比看書學習的效果高上很多。 零件陸陸續續一包一包來了,發現郵費比零件貴太多~~~~@@,今天先把非控板黏在冰棒棍上,如下 正面   背面 上至下分別是 Arduino Nano,MPU6050(GY521),藍芽模組(4.0),至於固定的方式目前只是用一條雙面膠讓他們黏在上面,因為我還在考慮是否使用藍芽模組4.0還是2.1 ,2.1的好處是ARDUINO的燒錄與調適可以直接透過藍牙,如果是使用4.0就只能飛行與設定,不能燒入Arduino,但是藍牙4.0的優點是iphone 也可以控制,所以目前就先黏上藍牙4.0。 第一步 先讓Arduino 與 GY521通訊起來,這樣的開始就會特別有感覺,由於想要呈現比較高質感的電路圖,發現一套很棒的軟體  http://fritzing.org/home/   fritzing 這一套電路圖軟體居然是OPEN SOURCE的,且畫出來的畫面很棒又簡單,也推薦給妳試試看,其實我蠻害怕畫電路圖的因為PROTEL太龐大了,我又不是本科系的所以電路圖對我來說太恐怖, fritzing玩起來像是玩具一樣,完全消除我心中的恐懼感。真是太感謝了,也學習到快速畫電路圖的技巧。 GY521與ARDUINO的通訊很簡單,透過I2C的連線方式即可,其實我並不太知道I2C是什麼,但是維基百科說( https://zh.wikipedia.org/zh-tw/I%C2%B2C ),他是一種並聯通訊,所以我們ARDUINO上的SCL、SDA,連結到裝置的SCL、SDA之間就可以透過I2C資料傳遞。由圖可以 知道 A5 是SCL A4 是SDA 圖片網址 http://www.pighixxx.com/test/portfolio-items/nano/ 連接圖如下 A5 是SCL A4 是SDA 電源 5V 與接地 然後還...

小四軸飛行器:驅動馬達

等待陀螺儀 的這段時間馬達先來了,所以我們開始測試馬達驅動系統飛行器的馬達是透過 Arduino 發出 PWM 訊號,傳送給驅動器 ( 小型為 MOS FET ,大型為電調 ) 控制馬達的轉速,達到控制飛行器。為了測試我們的驅動電路,我們先寫一個簡單的 PWM 控制,讓 PWM 輸出值越來越大,到大極限的時候,又慢慢地變小,如果我們的驅動電路可以正常運作時我們應該可以聽到馬達的聲音漸漸地變大,然後漸漸地變小。 測試馬達之前我們先學習 Arduino 的 PWM ,學習的過程當中我參考了下面的網站 http://coopermaa2nd.blogspot.tw/2011/07/6-pwm.html http://coopermaa2nd.blogspot.tw/2011/07/61-pwm-modes-part1.html 感謝 Cooper Maa 。       一開始我們先使用一個 LED 正腳接再 PWM Nano 的 D3 ,然後負腳接到 GND ,接著寫讓 PWM 變大變小的程式 然後又找到如下網站 葉難 :Arduino 練習 : 呼吸燈 http://yehnan.blogspot.tw/2012/02/arduino_16.html 使用網站上的程式碼,我們可以看到燈慢慢亮起來,又慢慢的暗下去, 如果看到這樣的結果代表我們的 PWM 範例程是可以動作。 當呼吸燈完成了,代表我們的程式碼是沒有問題的 ( 如果有問題就是電路的問題 ) ,接下來只要把 LED 腳換成馬達控制腳,就可以測試我們的驅動。 查詢了一下 SI2302 ,由下表可以知道為什麼選用這個 IC ,這張表是在某個賣場抓到的 http://taiwan.tmall.com/item/20689248199.htm? 型號 電流 電壓 標示 極性 封裝 2SK3018 100MA 30V KN N 通道 SOT23 ...