android 完美无(隐藏)图标启动软件

来源:互联网 发布:wp10桌面软件 编辑:程序博客网 时间:2024/05/21 11:37

<activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden" android:screenOrientation="portrait">     <intent-filter >                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />                             </intent-filter>           </activity>


    这段代码

 <category android:name="android.intent.category.LAUNCHER" />

  就是在应用列表创建图标,这段代码注释掉就在应用列表里面消失(但是在设置-应用列表可以显示)。

 那我没界面怎么启动???通过广播BroadcastReceiver 监听拨打特定电话启动软件就可以。

  

public class BroadCastTool extends BroadcastReceiver {    public void onReceive(Context context, Intent intent) {    // 如果是拨打电话  if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL"))  {   String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);   if(phoneNumber.equals("123456")){    //Intent你要启动的程序  }
  关于配置文件权限声明这里就不写了。

  但是这段代码在4.0以后有问题,好像4.0的广播机制变了,4.0之前只要安装应用程序广播就启动了。4.0之后要启动程序广告才生效。因此我们4.0之后要解决就要先启动程序。   首先 我们

<activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden" android:screenOrientation="portrait">     <intent-filter >                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />                             </intent-filter>           </activity>
声明依旧,要不没图标启动不了。。

   启动后我们需要在首个启动Activity中

PackageManager p = getPackageManager();p.setComponentEnabledSetting(getComponentName(),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);

COMPONENT_ENABLED_STATE_DISABLED
  表示在应用列表隐藏禁止。这样声明后如果我们要广播启动这个activity发现异常,因为已经禁止了,所有我们把这个类重新复制(不要把这个方法加进去)粘贴后起个新名字,广播中启动该类吧。


原创粉丝点击