当前位置: 首页 > wzjs >正文

工会网站建设可以营销战略有哪些内容

工会网站建设可以,营销战略有哪些内容,建设通招标网站,陈铭生缉毒警察业务背景 定制需求实现 目标:通话中禁用移动网络设置中的网络模式和APN入口。 Google原生行为分析 在原生Android中: 飞行模式: 无法在通话中开启:系统会自动阻止,因飞行模式会断开通话所需的射频。APN/网络模式修改…

业务背景

定制需求实现

目标:通话中禁用移动网络设置中的网络模式和APN入口

Google原生行为分析

在原生Android中:

  1. 飞行模式

    • 无法在通话中开启:系统会自动阻止,因飞行模式会断开通话所需的射频。
    • APN/网络模式修改:通话中允许进入设置,但修改可能导致数据连接中断(取决于版本,部分版本会自动禁用)。
  2. 通话中设置菜单状态

    • 网络模式(如4G/3G切换):通常允许修改,但可能不立即生效。
    • APN配置:允许进入,但保存新APN可能导致当前数据会话重置。

原生与定制的对比

场景Google原生行为定制后行为
通话中修改网络模式允许但可能中断数据连接禁止,菜单项置灰
通话中进入APN设置允许,保存可能重置数据禁止,Toast提示并拦截跳转
飞行模式下的移动网络直接隐藏或禁用整个菜单明确置灰,提示不可用

 

方案分析

代码关键点

  • 通话状态判断:通过TelephonyManager.CALL_STATE判断是否在通话中。
  • Preference动态控制:使用setEnabled(false)置灰,并通过点击事件拦截防止跳转。
  • 广播监听飞行模式:实时响应飞行模式开关,禁用整个移动网络菜单。

方案逻辑

  1. 在相关的PreferenceFragment(如MobileNetworkSettings)中注册一个通话状态监听器。
  2. 当通话状态变为OFFHOOK(正在通话中),则禁用网络模式和APN的Preference。
  3. 当通话结束后,恢复这些Preference的可用状态。
  4. 可能需要覆盖Preference的点击事件,在通话中阻止跳转到APN设置页面。

针对代码实现的具体步骤:

首先,找到移动网络设置中的相关Preference的key,比如"network_mode"和"apn_settings"。

在MobileNetworkSettings.java中,可能需要添加如下逻辑:

  • 在onCreate()中初始化这些Preference。
  • 在onResume()中注册通话状态监听,比如通过TelephonyManager.listen()。
  • 当通话状态改变时,更新Preference的enabled状态。
  • 在onPause()中取消注册监听器,以避免资源泄漏。

另外,APN设置的入口可能是一个PreferenceScreen,点击后会跳转到ApnSettings。因此,需要禁用该Preference,或者在点击时检查通话状态,并弹出提示。

代码

实现步骤

1. 监听通话状态

在设置页面的Fragment(如MobileNetworkSettings.java)中注册通话状态监听:

// 添加成员变量
private TelephonyManager mTelephonyManager;
private PhoneStateListener mPhoneStateListener;
private boolean mInCall = false;// 在onCreate中初始化
@Override
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mTelephonyManager = getSystemService(TelephonyManager.class);mPhoneStateListener = new PhoneStateListener() {@Overridepublic void onCallStateChanged(int state, String incomingNumber) {mInCall = (state != TelephonyManager.CALL_STATE_IDLE);updatePreferenceStates();}};
}// 在onResume中注册监听
@Override
public void onResume() {super.onResume();mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}// 在onPause中取消注册
@Override
public void onPause() {super.onPause();mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
}
2. 动态控制Preference状态
private void updatePreferenceStates() {// 获取网络模式和APN的PreferencePreference networkModePref = findPreference("network_mode_key");Preference apnPref = findPreference("apn_settings_key");if (networkModePref != null) {networkModePref.setEnabled(!mInCall);}if (apnPref != null) {apnPref.setEnabled(!mInCall);// 拦截点击事件apnPref.setOnPreferenceClickListener(preference -> {if (mInCall) {Toast.makeText(getContext(), "Cannot modify APN during a call", Toast.LENGTH_SHORT).show();return true; // 阻止跳转}return false; // 允许正常跳转});}
}

 

3. 飞行模式下的处理

监听飞行模式变化并禁用相关菜单:

// 在Fragment中添加广播接收器
private BroadcastReceiver mAirplaneModeReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {boolean isAirplaneModeOn = Settings.Global.getInt(getContentResolver(),Settings.Global.AIRPLANE_MODE_ON, 0) != 0;updatePreferenceStatesForAirplaneMode(isAirplaneModeOn);}
};// 注册广播
@Override
public void onResume() {super.onResume();// 通话状态监听...registerReceiver(mAirplaneModeReceiver, new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED));
}@Override
public void onPause() {super.onPause();unregisterReceiver(mAirplaneModeReceiver);
}private void updatePreferenceStatesForAirplaneMode(boolean isAirplaneModeOn) {Preference mobileNetworkPref = findPreference("mobile_network_key");if (mobileNetworkPref != null) {mobileNetworkPref.setEnabled(!isAirplaneModeOn);}
}

 

相关类

Android提供了TelephonyManager,可以监听通话状态。例如,通过监听TelephonyManager.EXTRA_STATE,或者使用PhoneStateListener来监听通话状态的变化。

package android.telephony;public class TelephonyManager {public static final int CALL_COMPOSER_STATUS_BUSINESS_ONLY = 2;public static final int CALL_COMPOSER_STATUS_OFF = 0;public static final int CALL_COMPOSER_STATUS_ON = 1;public static final int CALL_STATE_IDLE = 0;public static final int CALL_STATE_OFFHOOK = 2;public static final int CALL_STATE_RINGING = 1;}

当检测到通话处于活动状态时(比如,来电接通时),需要禁用相关Preference。

总结

通过监听通话状态和飞行模式,动态控制Preference的可用性及点击事件拦截,实现符合运营商需求的设置菜单逻辑。

http://www.dtcms.com/wzjs/293340.html

相关文章:

  • 徐州做网站的公司哪家好通州优化公司
  • 专业网站建设的策划方案网站
  • 宝坻网站建设中国广告公司前十强
  • 小工作室做网站seo怎么做推广
  • 鄄城住房和城乡建设局网站网站统计平台
  • 可以做微商的网站关键词优化软件有哪些
  • 龙岗网站建设过程疫情防控最新信息
  • 用php做网站要用什么软件百度搜索引擎推广怎么弄
  • 美工网站外贸网站优化
  • 个人网站需要备案站长之家查询工具
  • 佛山网站策划公司搜索关键词分析
  • vue配合什么做网站比较好sq网站推广
  • 做外贸最适合的网站系统网站是否含有seo收录功能
  • 优惠券直播网站怎么做的seo诊断优化专家
  • 自己做网站空间广告联盟平台哪个好
  • 网站中留言板怎么做品牌整合营销
  • 网站开发属于商标哪个类别今日头条最新消息
  • 网站qq访客采集系统_访客qq获取系统源码网站客户qq抓取代码百度搜首页
  • 电脑怎样做幻灯片的网站新产品推广方案范文
  • 南开区网站建设seo排名工具给您好的建议下载官网
  • 网页设计与网站建设大作业seo网络推广哪家专业
  • 网站后台操作seo是什么意思电商
  • 盱眙有做网站开发的吗专业推广图片
  • 企业做网站营销百度移动端点赞排名软件
  • vue网站开发教程企业网站优化价格
  • 网站源码上传安装包知名网络软文推广平台
  • 聊城做网站的如何快速推广
  • wordpress 分享 微信二维码seo公司官网
  • 创建网站企业优化seo设置
  • 专业的网站开发服务百度网站优化公司