3 回答

TA貢獻(xiàn)2039條經(jīng)驗 獲得超8個贊
顯然,這不是一項常見的任務(wù),因為您的所有實施都只是一個WebView. 這很難與 Android 內(nèi)部如此長的生存任務(wù)和生命周期保持一致。對于前。我們所做的每個VoIP應(yīng)用程序,都有后臺服務(wù),以保持連接有效,并帶有喚醒鎖。這只是確保通話穩(wěn)定性的一種方式。
但是,我認(rèn)為您可以嘗試這樣做。通過WebView在 Service 中管理您的工作。為此,您可以考慮將一些調(diào)用邏輯移到另一個視圖中,然后開始新的Service和創(chuàng)建新的Window。這將確保您Window在Service. 好像。
public class ServiceWithWebView extends Service {
@Override
public void onCreate() {
super.onCreate();
final WindowManager windowManager = (WindowManager)
getSystemService(WINDOW_SERVICE);
params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY);
final LinearLayout view = new LinearLayout(this);
view.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout
.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
WebView wv = new WebView(this);
wv.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout
.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
view.addView(wv);
wv.loadUrl("http://google.com");
windowManager.addView(view, params);
}
}

TA貢獻(xiàn)1816條經(jīng)驗 獲得超4個贊
在通話期間,您應(yīng)該努力在該活動中保持屏幕開啟,并防止屏幕變暗。
用這個:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
在你的電話完成后:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

TA貢獻(xiàn)1875條經(jīng)驗 獲得超5個贊
Android 會在離開前臺幾分鐘后自動銷毀您的活動,這將導(dǎo)致錄音關(guān)閉。
我在 android 上使用 webrtc,如果你想在 Android 上使用 webrtc 創(chuàng)建通話和視頻通話,我建議使用本機(jī) webrtc 并在前臺服務(wù)上實現(xiàn)與 webrtc 相關(guān)的所有內(nèi)容。前臺服務(wù)將確保您的記錄器和相機(jī)在活動被破壞時繼續(xù)運(yùn)行事件。
添加回答
舉報