其實(shí)這個(gè)是前兩年就遇到過的問題。
基本上是權(quán)限問題引起的。
android10以上手機(jī)是需要手動(dòng)獲取一些敏感權(quán)限,unity2018以前的版本沒有適配,導(dǎo)出的android工程在沒有手動(dòng)獲取權(quán)限的情況下會(huì)黑屏卡住。
那么需要哪些權(quán)限呢? 那就是【READ_PHONE_STATE】 ,在androidmanifest里添加這個(gè)權(quán)限后還需要在啟動(dòng)unity的acitivity前手動(dòng)獲取到這個(gè)權(quán)限,這樣android10以上才不會(huì)黑屏。
為什么unity需要這個(gè)權(quán)限呢?
這里,靜止其他應(yīng)用播放聲音。簡(jiǎn)單點(diǎn)說就是,如果沒有勾選,則需要這個(gè)權(quán)限,勾選了就不需要。
國(guó)內(nèi)現(xiàn)在因?yàn)殡[私合規(guī)的問題,很多平臺(tái)不允許啟動(dòng)前獲取read phone state這個(gè)敏感權(quán)限,所以勾選這里能跳過這個(gè)權(quán)限問題。文章來源:http://www.zghlxwxcb.cn/news/detail-512980.html
還有一種解決方式,那就是重寫他jar包里 UnityPlayer類中addPhoneCallListener 這個(gè)方法文章來源地址http://www.zghlxwxcb.cn/news/detail-512980.html
public class YUnityPlayer extends UnityPlayer {
public YUnityPlayer(Context context) {
super(context);
}
@Override
public void addPhoneCallListener(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
return;
}
super.addPhoneCallListener();
}
}
然后將 UnityPlayerActivity 中 mUnityPlayer類型改為 YUnityPlayer 即可。
到了這里,關(guān)于Unity 導(dǎo)出android后android12以上黑屏問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!