从抽屉中取出的应用程序图标没有的Andr​​oid 4.1的工作 [英] Remove app icon from Drawer not working in Android 4.1

查看:143
本文介绍了从抽屉中取出的应用程序图标没有的Andr​​oid 4.1的工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有它安装在用户的电话,仍然从应用程序抽屉隐藏的应用程序,来实现这一点,只是去掉意向的过滤器标记,这项工作很好低于ICS 4.0的一切,任何帮助的事情得到它在ICS工作?

这工作在姜饼和Froyo的罚款,开始我的活动,并不断从抽屉中隐藏的应用程序图标,

 <活动
     机器人:标签=@字符串/ APP_NAME
     机器人:名字=。DashboardActivity>
< /活性GT;

但在ICS不工作,如果我删除此行的活动无法启动,任何想法,为什么?

 <意向滤光器>
         <作用机器人:名字=android.intent.action.MAIN/>
         <类机器人:名字=android.intent.category.LAUNCHER/>
     &所述; /意图滤光器>

这是code为我的拨号键盘监听器

 进口android.content.BroadcastReceiver;
进口android.content.Context;
进口android.content.Intent;
进口android.os.Bundle;
进口android.widget.Toast;公共类DialpadLauncher扩展广播接收器{
    @覆盖
    公共无效的onReceive(上下文的背景下,意图意图){
        // TODO自动生成方法存根
        捆绑包= intent.getExtras();
        如果(空==束)
            返回;
        // outgoingNumber = intent.getStringExtra(Intent.ACTION_NEW_OUTGOING_CALL);
        字符串phoneNumber的= intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);        如果(phoneNumber.equals(#00008#)){
            //这里开始应用
            //Toast.makeText(context,\"DIALED:+ phoneNumber的,Toast.LENGTH_LONG).show();            尝试{
                意向活动=新意图(背景下,DashboardActivity.class);
                activity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(活动);
                setResultData(NULL);            }赶上(例外五){
                // TODO自动生成catch块
                e.printStackTrace();
            }
            //捕获未找到(仅适用于HTC手机)* /
        }    }
}


解决方案

在的情况下,任何人碰到这在未来,我发现了一种从抽屉中隐藏应用程序图标编程的情况下,它不通过去除意图去做-filter:

如果从抽屉

  //禁用启动图标比Android 2.3高
尝试{
     组件名componentToDisable =新单元名(com.your.packagename,com.your.packagename.ActivityName);
     getPackageManager()setComponentEnabledSetting(componentToDisable,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP)。
}赶上(例外五){
     // TODO自动生成catch块
     e.printStackTrace();
}

I have an app that its installed in the user's phone and remains hidden from the Applications Drawer, to achieve this it was only a matter of removing the intent-filter tags, this work fine for everything below ICS 4.0, any help to get it working in ICS?

This works fine in gingerbread and froyo, starts my activity and keeps hidden the App Icon from the drawer,

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

but not working in ICS, if i remove this lines the activity wont start, any ideas why?

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

This is the code for my Dialpad listener

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)*/
        }

    }
}

解决方案

In case that anyone bumps into this in the future, i found a way to hide App Icon from the drawer programmatically in case it doesnt do it by removing the intent-filter:

//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();
}

这篇关于从抽屉中取出的应用程序图标没有的Andr​​oid 4.1的工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆