实现桌面应用图标的动态隐藏和显示,触发事件为SIM卡的状态
2017-06-14 11:18
656 查看
package com.songyan.accountrecord; import android.app.Service; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.telephony.TelephonyManager; /** * Created by songyan on 2017/6/13. */ public class StkShowOrNot extends BroadcastReceiver{ private static final String TAG="StkShoOrNot"; private static final String ACTIVITY="com.android.stk.StkMain";//要进行显示和隐藏的launcher类 @Override public void onReceive(Context context, Intent intent) { TelephonyManager tm=(TelephonyManager)context.getSystemService(Service .TELEPHONY_SERVICE); int state=tm.getSimState(); switchState(context,state); } private void switchState(Context context,int state){ switch (state){ case TelephonyManager.SIM_STATE_READY: enableComponent(context,ACTIVITY); break; case TelephonyManager.SIM_STATE_ABSENT: case TelephonyManager.SIM_STATE_UNKNOWN: case TelephonyManager.SIM_STATE_PIN_REQUIRED: case TelephonyManager.SIM_STATE_PUK_REQUIRED: case TelephonyManager.SIM_STATE_NETWORK_LOCKED: default: disableComponent(context,ACTIVITY); break; } } private void enableComponent(Context context,String klass){ ComponentName name=new ComponentName(context,klass); PackageManager pm=context.getPackageManager(); pm.setComponentEnabledSetting(name,PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); } private void disableComponent(Context context,String klass){ ComponentName name=new ComponentName(context,klass); PackageManager pm=context.getPackageManager(); pm.setComponentEnabledSetting(name,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } }
AndroidManifest.xml添加,为了使开机时就触发事件,需要添加开机权限和开机广播类型
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name="com.songyan.accountrecord.StkShowOrNot"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.SIM_STATE_CHANGED" /> </intent-filter> </receiver>
相关文章推荐
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- js应用之事件触发:隐藏和显示按钮
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- 转Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- android 隐藏应用图标,用快捷方式做启动入口,实现伪动态改变图标
- 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
- 位运算(&)实现分享弹窗上的图标动态显示/隐藏
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- 黑马程序员-----隐藏应用图标,显示快捷方式,动态定义图标