需求:當android 手機 按了 home 鍵後 接到語音通話 需要 彈出 語音接聽界面。
業務分析:當app 處於 後臺狀態下(按home鍵)接到socket 消息或者推送消息 然後 直接從後臺 彈出界面。
最終效果:很多 新版(Android Q)、小米等手機 彈出不相關界面。測試和產品 組 要求修復。
經過探索發現 大部分手機 需要開啓【懸浮窗權限】 小米等部分手機 需要開啓【後臺彈出界面】權限
於是 就手寫了一個 demo :希望有需要的同學 可以試試:
集成方式:項目 目錄 build.gradle
repositories {
google()
jcenter()
}
代碼如下:
第一步:使用前 請先申請權限
BgStart bgStart = new IBgStartImpl();
Log.e("RAG", Miui.isAllowed(this)+"");
bgStart.requestStartPermisstion(this, new PermissionLisenter() {
@Override
public void onGranted() {
Log.e(TAG, "onGranted");
}
@Override
public void cancel() {
Log.e(TAG, "cancel");
}
@Override
public void onDenied() {
Log.e(TAG, "onDenied");
}
});
第二步:啓動界面 從MainActivity 跳轉到B (activity)
Intent intent = new Intent(MainActivity.this, B.class);
new IBgStartImpl().startActivity(MainActivity.this, intent, B.class.getName());
DEMO 持續更新 歡迎交流