2012-04-17 133 views
1

我正在開發一個在KIOSK模式下有效運行的工業應用程序 - 即用戶不能退出它。以編程方式啓動啓動程序選擇/ Android

爲了達到這個目的,我簡單地將應用程序作爲啓動器/主屏幕替換。這項工作非常有效,迄今似乎正在成爲阻止人們出門的一種方法。

我唯一的問題是,如果我不小心,我們將結束磚塊設備,我們不能回到正常的啓動程序應用程序。

我在尋找的是一種以編程方式呈現Android啓動器選擇對話框的方法。

當你第一次啓動一個啓動器時,Android似乎自己做這件事,但我無法想出一種以編程方式實現它的方式。

回答

3

我在找的是一種在語法上呈現Android啓動器選擇對話框的方法。

Intent.createChooser()返回Intent將推出一個選擇器(我想這是你的意思是「Android啓動選擇對話框」什麼的)對於一個給定Intent。因此,請爲ACTION_MAINCATEGORY_HOME創建一個Intent,將其包裝到Intent.createChooser()中,並在產生的Intent上調用startActivity()

+0

這正是我正在尋找 - 謝謝! – 2012-04-17 11:34:39

+0

@CommonsWare:我試過了,但是當我的啓動程序定義爲默認啓動程序(用戶選中 - 用作默認複選框) - 啓動您描述的活動時,只需重新啓動我的家庭活動(我猜是因爲它已被定義爲默認)而不是彈出「主屏幕選擇器」對話框/活動..所以我的用戶可以永久停留在我的應用程序在這種情況下。有什麼建議麼? – 2012-11-08 13:54:36

+0

@TalKanel:如果這是美國相對較新的HTC設備,那麼這可能是蘋果提起的一些專利侵權訴訟的結果。請參閱http://commonsware.com/blog/2012/07/23/linkify-problem-patent-behavior.html和http://commonsware.com/blog/2012/07/24/linkify-problem-detection-mitigation .html – CommonsWare 2012-11-08 14:03:49

-1

如果我明白這個問題,你不想讓用戶離開你的應用程序,如果他不想要它?

我會做這樣的:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    return true; 
} 

現在點擊按鈕將爲活動被忽略。現在你只需要爲出口做一個菜單點。

+0

我嘗試過這樣的解決方案。 不幸的是它不能很好地工作。只要你有一個進度對話框,關閉狀態欄或啓動像相機他們可以按Home鍵和用戶出去。 Android設計非常有針對性地阻止你以這種方式鎖定用戶。 因此,我的問題是如上: 如何從已設置爲默認啓動程序的應用程序中呈現啓動程序選擇對話框。 謝謝 – 2012-04-17 10:32:20

+0

是的,你必須對每一個活動都這樣做,我可以用進度對話框來解決問題,我用彈出窗口和xml元素創建自己的問題。 – 2012-04-17 10:44:21

+0

例如,你不能在狀態欄上執行它,或者相機應用程序? 我的解決方案看起來更簡單,並且更安全。我也讀過谷歌認爲能夠阻止主頁按鈕作爲他們打算解決的錯誤,所以它不是未來的證明。 – 2012-04-17 10:59:54