第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

SYSTEM_ALERT_WINDOW - 如何在Android 6.0

SYSTEM_ALERT_WINDOW - 如何在Android 6.0

SYSTEM_ALERT_WINDOW - 如何在Android 6.0和targetSdkVersion 23上自動(dòng)獲得此權(quán)限Facebook,Evernote,Pocket - 所有應(yīng)用程序都會(huì)自動(dòng)在Android 6.0上獲得此權(quán)限,即使它們的目標(biāo)是23(targetSdkVersion=23)。關(guān)于新的Marshmallow權(quán)限模型有很多文檔。其中一個(gè)SYSTEM_ALERT_WINDOW被“提升”為“高于危險(xiǎn)”的權(quán)限級(jí)別,因此需要特殊的用戶干預(yù)才能授予應(yīng)用程序這些權(quán)限。如果應(yīng)用程序有targetSdkVersion22或更低,app會(huì)自動(dòng)獲得此權(quán)限(如果在清單中請(qǐng)求)。但是,我注意到一些獲得此權(quán)限的應(yīng)用程序,無(wú)需將用戶發(fā)送到設(shè)置特殊頁(yè)面的Draw over other apps權(quán)限。我看到Facebook,Evernote,Pocket - 也許還有更多。任何人都知道在沒(méi)有用戶通過(guò)的情況下如何授予應(yīng)用程序此權(quán)限Settings -> Apps -> Draw over other apps?謝謝
查看完整描述

3 回答

?
桃花長(zhǎng)相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

在棉花糖來(lái)之后,Android讓安全級(jí)別更加堅(jiān)持,但是

SYSTEM_ALERT_WINDOW

你可以顯示浮動(dòng)動(dòng)作和任何你可以強(qiáng)制用戶給它的權(quán)限通過(guò)你的onCreate()方法中的以下代碼將此代碼放在setContentView之后

    // Check if Android M or higher
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        // Show alert dialog to the user saying a separate permission is needed
        // Launch the settings activity if the user prefers
        Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
        startActivity(myIntent);
    }

該操作ACTION_MANAGE_OVERLAY_PERMISSION直接啟動(dòng)“繪制其他應(yīng)用程序”權(quán)限屏幕。


編輯:我的上面的代碼工作100%正確

但我發(fā)現(xiàn)很多人仍然在尋找ACTION_MANAGE_OVERLAY_PERMISSION 永久性的允許方式如果用戶已經(jīng)允許Permission Once那么每次打開(kāi)應(yīng)用程序時(shí)都不要問(wèn)它,所以請(qǐng)聽(tīng)你的解決方案 -

  1. 檢查設(shè)備是否具有API 23+

  2. 如果23+ API然后檢查用戶是否有許可

  3. 如果有許可,一旦不驅(qū)使他Settings.ACTION_MANAGE_OVERLAY_PERMISSION,如果還沒(méi)有許可,那么請(qǐng)求運(yùn)行時(shí)權(quán)限檢查

在你的onCreate()方法中放在下面。把它放在后面setContentView

checkPermission();

現(xiàn)在把代碼放在下面 onActivityResult

@TargetApi(Build.VERSION_CODES.M)@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE) {
        if (!Settings.canDrawOverlays(this)) {
            // You don't have permission
            checkPermission();
        } else {
            // Do as per your logic 
        }

    }}

現(xiàn)在最后是checkPermission方法代碼

public void checkPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (!Settings.canDrawOverlays(this)) {
            Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:" + getPackageName()));
            startActivityForResult(intent, ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE);
        }
    }}

并且不要忘記在您的類中聲明此公共變量

public static int ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE = 5469;


查看完整回答
反對(duì) 回復(fù) 2019-08-16
?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果應(yīng)用程序的目標(biāo)是API 22或更低版本,則Play Store會(huì)在用戶點(diǎn)擊安裝(顯示警報(bào))時(shí)提供SYSTEM_ALERT_WINDOW權(quán)限,即使其設(shè)備是Android 6.0,否則,如果應(yīng)用程序的目標(biāo)是API 23或更高版本,那么許可將被要求在運(yùn)行時(shí)授予。


查看完整回答
反對(duì) 回復(fù) 2019-08-16
  • 3 回答
  • 0 關(guān)注
  • 1130 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)