2012-03-06 83 views
1

用途?這個問題是關於如何把Android硬件和操作系統變成一個界面。這將是我們自己的硬件,永遠不會離開大樓,並運行我們創建的任何程序。 爲什麼? Android內置電池備份,防盜探測(GPS),優雅的觸摸屏和熟悉的編程界面。Android是否支持鎖定到完全替換的界面?

我想要什麼:

  1. 我能要求不管按下屏幕上的內容,用戶永遠不會離開我的應用程序?

    是否有說明要做到這一點,是正式支持或我將不得不開始劈砍而去? (使用系統級界面,刪除語音激活(當用戶按住搜索按鈕時),禁用自動更新等)

    理想情況下,我想只寫一個替換整個界面的應用程序,而我想要一種方式來掛鉤應用程序,而無需額外的工作(植根電話並手動刪除某些內置應用程序)。

  2. 我還想將USB鎖定爲「僅收費」模式,以防止未經我的應用程序批准安裝文件系統。我不關心一個真正堅定的人打開設備並安裝內部存儲單元的文件系統。

  3. 如果發生崩潰,我想要第二個應用程序決定是否重新啓動第一個應用程序。

很明顯,我不希望手機變得無法使用,即使它只是備用硬件。

+3

不支持股票固件。你將不得不編寫自定義固件。我不相信這是官方支持的。 – 2012-03-06 20:04:08

+0

我真誠希望它不可能 – slezica 2012-03-06 20:05:31

+0

@uʍopǝpısdn,請注意,這是一個事件,當我有硬件,並且願意使用root-ed手機的命令行界面時。在這種情況下,我認爲這不可能是重要的。 – 2012-03-06 20:16:29

回答

1

我假設Android可以在Wi-Fi唯一的互聯網接入下運行,如果我拒絕支付無線訂閱。 (這當然意味着沒有電話服務)

一般來說,答案是肯定的。一些設備製造商/運營商比其他設備更容易。例如,它可能會嘗試在啓動時自動將您連接到電話註冊系統,即使它始終會失敗。它可能不會退出嘗試。所以每次手機啓動時都必須取消。

我可以要求無論屏幕上按什麼按鍵,用戶都不會離開我的應用程序嗎?

不,謝天謝地。

是否有指示要做到這一點,是官方支持還是必須開始黑客入侵?

它不被支持,並希望100%不可能在所有設備上消費者的手中。否則我們有很大的問題。

我在想,如果手機是「root-ed」,那麼像語音激活應用程序可以卸載,主屏幕可以被替換。

該設備不需要植根到安裝替換主屏幕並將其設置爲默認使用。要移除安裝爲系統級應用程序(可能是語音搜索)的東西,它需要根植於其中。

即使您設法擺脫語音搜索作爲擺脫應用程序的可能方式。用戶仍然可以長時間在家中並從最近推出的列表中選擇不同的應用程序...

如果您想禁用用戶可能離開應用程序的所有可能方式,修改固件以允許這一點。然後,您的應用程序只能在運行您自己版本的操作系統的設備上正常工作。

+0

**保持主頁按鈕**只會顯示最近使用的應用程序,理論上,我的應用程序是最近使用的唯一一個。 :) **禁用所有可能的方式離開**,我只是想知道還有什麼其他渠道可以使用,我沒有解決?我知道我可能無法獲得所有這些,但只是想知道在合理的範圍內能做什麼,不能做什麼,以及以什麼方式開始。 – 2012-03-06 20:12:04

+0

這是真的。我一直在想這個設備仍然會用於其他的事情,但是在使用你的設備時會被鎖定。我猜你可能實際上可以製作一個操作系統的副本,其中不包含除你以外的其他應用程序......您定位的是哪個SDK版本? 3.0+的底部欄將允許用戶訪問「設置」,將他們從你的應用程序中刪除=/ – FoamyGuy 2012-03-06 20:16:39

+0

點號3是[句柄](http://stackoverflow.com/a/9590851/463304#comment12164687_9591107 )。 – 2012-03-07 21:01:49

2

這不能通過簡單地編寫應用程序來實現。你一定需要在ROM上做一些定製。我不知道任何官方指示來支持這一點。你似乎有正確的想法。刪除不必要的應用程序並用您的應用程序替換主屏幕應該會讓您非常滿意。根據ROM,您也可能需要卸下系統托盤。使用正確的ROM也應該很容易。如果這一切都不在同一個地方,你就必須自己做飯。

2

不是。

您可以實現您的應用程序以接收主屏幕Intents,以便當設備打開時,或者您按Home鍵時,它將獲得Intent。然而,你有股票主屏幕和你的應用程序註冊這些意圖,設備的用戶可以決定哪些將是默認處理程序。

對於第三點,應用程序崩潰由現代版本的Android中的操作系統處理。我相信這在老版本中是可行的,但現在不再了。

這是您可以使用股票Android做的最好的。如果你想做的不止這些,你必須修改系統本身。您也無法以您描述的方式控制/限制對USB端口的訪問,而無需修改內核。

+0

我喜歡自定義主屏幕的想法!我不知道這是可能的。 – 2012-03-06 20:37:47

+0

不是一種常見的做法,但它可以在某些使用情況下有效(如yours,methinks)。 – jeffsix 2012-03-06 20:40:14

+0

我認爲這將解決崩潰問題,因爲我認爲崩潰只會做以下三件事之一:1.將您帶回主屏幕,2.通過啓動市場相關應用程序報告錯誤(我打算卸載),或3.重新啓動應用程序。 – 2012-03-06 20:41:43

1

我已經實施了一個應用程序,它和你有類似的要求,你可以在這裏閱讀我的博客文章Android auto-updating homescreen application。下面是你的一些問題的答案:

我可以要求不管屏幕上按什麼,用戶永遠不會離開我的應用程序?

是否有指示要做到這一點,是否正式支持,還是我必須開始>黑客入侵? (使用系統級界面,刪除語音激活(當用戶按住搜索按鈕時),禁用自動更新等)

理想情況下,我想只寫一個代替整個界面的應用程序,並且我想要一種方式來掛鉤應用程序,而無需額外的工作(根植手機並手動移除內置的特定應用程序)。

據我所知,有兩種方法可以做到這一點,一種是使用Homescreen應用程序,另一種是使用「系統警報窗口」,我認爲你熟悉這兩種選項。

我還想鎖定USB進入「僅充電」模式,以防止未經我的應用程序的批准安裝>文件系統。我並不關心一個真正堅定的人>打開設備並掛載內部存儲單元的文件系統。

我不確定這是否有可能,但如果您的電話安裝了busybox,則可以使用低級別的Linux命令。對不起,在這裏沒有太多的幫助。

在發生碰撞的情況下,我想有決定是否要>重啓第一應用的第二應用

這是可能的,我相信,例如,如果你把一個看看現有的Android「崩潰報告」工具,如Acra,你會看到處理崩潰的例子,你需要做的是處理UncaughtExceptionHandler(這兩種方法是你的朋友Thread.getDefaultUncaughtExceptionHandler()Thread.setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler eh))。一旦處理程序從那裏設置,您可以決定做什麼(確保不要默默處理異常,您必須讓它通過,以便Android可以執行必要的清理)。現在,如果您的應用程序是默認主屏幕,那麼在發生崩潰時,Android會自動爲您重新啓動應用程序。如果它不是主屏幕應用程序,那麼當發生崩潰時,您可以觸發一個意圖重新啓動您的應用程序。

希望它有幫助。

+0

理論上講,如果您使用的是系統級對話框,則用戶將無法看到離開僅收費模式的選項。 – 2012-05-14 12:48:23

+0

這是正確的!在這種情況下,HomeScreen應用似乎是比使用系統級對話更好的選擇。在附註中,我很想知道您是否以編程方式控制USB充電模式,據我所知,沒有可用的API。 – Arnab 2012-05-14 14:16:58

+0

***「在這種情況下,HomeScreen應用程序似乎是一個更好的選擇」***,稍等片刻,我**不希望用戶離開收費模式**,鑑於額外的信息,你現在和我在一起,相反會是真的嗎? (系統級別比主屏幕更好)***「以編程方式控制USB充電模式」***,不是真的,我可以進入設置並將其設置爲僅手動充電。我只是試圖確保我可以在完成後鎖定該選項(系統級對話框可能會工作)。我不希望其他人將代碼注入手機。 – 2012-05-14 16:59:10