2013-06-27 22 views
4

我在開發應用程序時遇到問題,我正在構建一個可以在鎖屏或主頁上的Widget。當我在鎖屏時,我希望當用戶點擊一個按鈕時,在需要的情況下,用戶登錄的小部件提示。我的意思是提示輸入模式或密碼或面部識別,具體取決於用戶是否啓用了此安全功能。 用戶輸入他的模式後,小部件將運行一個應用程序(意圖)。android widget提示解鎖

我注意到一些小部件確實提示登錄,而其他小部件確實沒有找到它們之間的區別。

我覺得這是對的onReceive方法,但不知道我怎麼能稱之爲「登錄」方法,至今在的onReceive我開始的意圖

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);  
context.getApplicationContext().startActivity(i); 

但這仍然不會提示輸入登錄。當小部件在鎖屏上時。

假設用戶在鎖定屏幕中與小部件交互,用戶不會提示輸入密碼,無論用戶輸入他的模式|密碼,還是在用戶「進入」他的主屏幕和應用程序已啓動。所以這個小部件確實啓動了這個意圖,只是不讓用戶「知道」或者登錄來查看應用程序。

有關如何提示用戶輸入模式以便進入主屏幕的任何想法?

[編輯]

當我嘗試解僱一個BroadcastReceiver中的意圖,會出現問題。 我所做的是允許用戶與widgetd按鈕進行交互,具體取決於用戶選擇的內容我將打開我的應用程序,爲意圖添加一些額外內容。

等我的廣播接收器的方法的onReceive我試着火:

Intent i = new Intent(context, MyActivity.class); 
i.putExtra(WidgetUtils.TAG_CURRENT_SELECTION, StringIGotFromInteraction); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.getApplicationContext().startActivity(i); 

這樣的意圖不提示的「疏通」。

如果的onUpdate我投未決意圖的任何按鈕,當用戶點擊該按鈕並提示輸入解鎖這樣:

views.setOnClickPendingIntent(R.id.aButton, buildAPendingIntent(context)); 

,但我需要知道的有選擇打開用戶和意圖,如果我打開任何。

和我的contex.startActivity方法工作正常,當小部件在主屏幕上,而不是在loockscreen上。

任何想法我怎麼能做到這一點。

回答

0

我無法找到答案我最終做的是創建一個動態按鈕,並且當小部件更新(通過其他按鈕)時,我將PendingIntent分配給此按鈕。

所以當用戶點擊這個動態按鈕時,小部件會嘗試打開該意圖,並在用戶提示輸入密碼時出現。

我認爲這不是最好的解決方案,我們讓用戶額外點擊小部件。