您好,登錄后才能下訂單哦!
小編這次要給大家分享的是Android Service中如何實(shí)現(xiàn)彈出對(duì)話(huà)框,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
一、手機(jī)版本問(wèn)題,大多數(shù)文章沒(méi)有涉及這個(gè)點(diǎn),導(dǎo)致他們的代碼并無(wú)法正常使用
M版本以上需要使用的Type--> TYPE_APPLICATION_OVERLAY
AlertDialog.Builder builder=new AlertDialog.Builder(getApplicationContext()); builder.setTitle("提示"); builder.setMessage("service彈框"); builder.setNegativeButton("明白了",null); Dialog dialog=builder.create(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){//6.0 dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY); }else { dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); } dialog.show();
同時(shí),因?yàn)樯婕安煌姹镜腁ndroid系統(tǒng)
AndroidManifest.xml 中聲明同時(shí)需要這兩個(gè)類(lèi)型對(duì)應(yīng)的權(quán)限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
二、權(quán)限問(wèn)題,service中彈出的對(duì)話(huà)框?yàn)橄到y(tǒng)彈框,在M版本以上需要申請(qǐng)懸浮窗權(quán)限
Android 6.0 以前懸浮窗是默認(rèn)允許的
注意Android 6.0以后的使用
因?yàn)閼腋〈皺?quán)限 SYSTEM_ALERT_WINDOW
屬于特殊權(quán)限 ,需要自己特別單獨(dú)申請(qǐng)
特殊權(quán)限,顧名思義,就是一些特別敏感的權(quán)限,在Android系統(tǒng)中,主要由兩個(gè)
SYSTEM_ALERT_WINDOW(設(shè)置懸浮窗,進(jìn)行一些黑科技)
WRITE_SETTINGS (修改系統(tǒng)設(shè)置)
關(guān)于上面兩個(gè)特殊權(quán)限的授權(quán),做法是使用startActivityForResult啟動(dòng)授權(quán)界面來(lái)完成。
申請(qǐng)方式:
private static final int REQUEST_CODE = 1; private void requestAlertWindowPermission() { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); intent.setData(Uri.parse("package:" + getPackageName())); startActivityForResult(intent, REQUEST_CODE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Settings.canDrawOverlays(this)) { Log.i("xqxinfo", "onActivityResult granted"); } } } }
看完這篇關(guān)于Android Service中如何實(shí)現(xiàn)彈出對(duì)話(huà)框的文章,如果覺(jué)得文章內(nèi)容寫(xiě)得不錯(cuò)的話(huà),可以把它分享出去給更多人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。