2013-05-28 48 views
1

我有一個應用程序,它安裝在用戶的手機,並保持隱藏的應用程序抽屜,實現這一目標只是一個刪除intent-filter標籤,這項工作對於ICS 4.0以下的所有內容都適用,有什麼幫助讓它在ICS中工作的?從抽屜中刪除應用程序圖標不工作在Android 4.1

這個作品在薑餅和Froyo的罰款,開始我的活動,並不斷從抽屜中隱藏的應用程序圖標,

<activity 
    android:label="@string/app_name" 
    android:name=".DashboardActivity" > 
</activity> 

但在ICS不工作,如果我刪除此行的活動不會啓動,任何想法爲什麼?

 <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 

這是代碼爲我的撥號鍵盤監聽

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.Toast; 

public class DialpadLauncher extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     Bundle bundle = intent.getExtras(); 
     if (null == bundle) 
      return; 
     // outgoingNumber=intent.getStringExtra(Intent.ACTION_NEW_OUTGOING_CALL); 
     String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 

     if (phoneNumber.equals("#00008#")){ 
      //START APPLICATION HERE 
      //Toast.makeText(context,"DIALED: " + phoneNumber, Toast.LENGTH_LONG).show(); 

      try { 
       Intent activity = new Intent(context, DashboardActivity.class); 
       activity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       context.startActivity(activity); 
       setResultData(null); 

      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      // catch not found (only works on HTC phones)*/ 
     } 

    } 
} 
+0

你打算如何開始它? – FoamyGuy

+0

我有一個撥號盤的監聽器,如果我撥打*#00008#*活動來到前面,但這不會發生在4.0 – RonEskinder

+0

上發佈您的撥號器代碼的監聽器,這可能有助於修復它。 – FoamyGuy

回答

2

在情況下,任何人都碰到這個在未來,我發現了一種從抽屜中隱藏應用程序圖標程序的情況下,它沒有做它通過刪除意圖過濾器:

//Disable Launcher icon from drawer if higher than Android 2.3 
try { 
    ComponentName componentToDisable = new ComponentName("com.your.packagename", "com.your.packagename.ActivityName"); 
    getPackageManager().setComponentEnabledSetting(componentToDisable, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 
} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

感謝羅恩我試過你的解決方案和它的工作正常:)但我想通過撥號代碼啓動應用程序,但它給了我錯誤活動沒有找到 – Antarix

+0

你想調用你的MainActivity? – RonEskinder

相關問題