2013-05-28 32 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

相关问题