服务外包技术路线及实现方案_第1页
服务外包技术路线及实现方案_第2页
服务外包技术路线及实现方案_第3页
服务外包技术路线及实现方案_第4页
服务外包技术路线及实现方案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

移动外勤系统Mobile-Manager E次方团队 移动外勤系统Mobile-Manager项目解决方案-S2C技术路线及实现方案移动外勤系统Mobile-Manager目录目录21.技术路线21.1 系统功能时序图和系统流程图21.1.1 系统功能时序图31.1.2 平台系统流程图41.2 Android手机功能菜单和Android手机功能关键词列表41.3 Web浏览器功能菜单和Web浏览器功能关键词列表52. 实现方案62.1 Android手机主界面功能实现62.1.1 主界面菜单功能的实现62.1.2 获取企业通讯录功能的实现101.技术路线1.1 系统流程图根据Android公众具体的功能实现过程画出了系统流程图,可以清晰明了地展示整个系统接收消息、处理消息和发送消息的操作流程。系统流程图(图1.2)主要介绍整个系统工作的过程,从用户发送消息,到最后用户接收到返回的消息,这个过程通过流程图来描绘,清晰明了。整个系统的实现充分体现出的用户交互友好性。将消息发送到服务器端,服务器端通过数据传输将消息发送回我们的手机上,然后手机对详细进行处理,返回消息到手机平台再到用户手里的过程。1.1.1 平台系统流程图图1.1 整体系统流程图 1.2 Android手机功能菜单和Android手机功能关键词列表Android手机菜单包含了12项功能,功能具体如表1.1主菜单子菜单功能客户客户拜访前往拜访客户,与客户交谈商议签的预约客户评价在拜访客户后,由客户评价工作人员客户管理不同的客户进行分类管理 任务任务发送在任务无法完成情况将任务挂在服务器上,交由其他工作人员帮助完成任务接收接收挂在服务器上的任务,帮助他人完成任务任务查看查看已经挂在网上的任务个人管理个人中心登陆后查看自己信息公司公告从服务器端获取公司内部公告消息企业通讯录独立出来的可添加删除的通讯录GPS定位用于定位员工位置与行程个人签到在GPS定位开启下使用,帮助公司更好管理员工上班行程出差登记用于申请出差,简洁方便表1.1 系统功能表1.3 Web浏览器功能菜单和Web浏览器功能关键词列表Web浏览器菜单包含了12项功能,功能具体如表1.1主菜单子菜单功能管理员管理员登陆与数据库连接进行登陆管理用户对工作人员进行信息管理添加用户对新进的员工进行信息添加查询用户查询某一用户表1.2 Web管理员功能表图1.2 web端后台管理主菜单子菜单功能 用户用户登陆在管理员限制下与数据库连接登陆任务任务发布接收Android手机上传的任务进行管理公告公司公告发布公司公告出差登记出差获取员工发送的出差申请,选择同意与否表1.3 Web用户功能表2. 实现方案2.1 Android手机主界面功能实现2.1.1 主界面菜单功能的实现要设置Android手机的菜单,在手机内部进行页面切换,用Tab分页,然后通过listview和list.add添加跳转功能进入功能实现页面。功能代码如下:public class Main extends TabActivity Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.denglu);TabHost tabHost = getTabHost(); TabSpec tabSpec1 = tabHost.newTabSpec(tab1);tabSpec1.setIndicator(客户);Intent intent1 = new Intent(this, One.class);tabSpec1.setContent(intent1);tabHost.addTab(tabSpec1);TabSpec tabSpec2 = tabHost.newTabSpec(tab2);tabSpec2.setIndicator(任务);Intent intent2 = new Intent(this, Two.class);tabSpec2.setContent(intent2);tabHost.addTab(tabSpec2);TabSpec tabSpec3 = tabHost.newTabSpec(tab3);tabSpec3.setIndicator(个人);Intent intent3 = new Intent(this, Three.class);tabSpec3.setContent(intent3);tabHost.addTab(tabSpec3);public class Three extends Activity private ListView mylistview; private ArrayList list = new ArrayList();Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.tab03); mylistview = (ListView)findViewById(R.id.listview); list. add(个人中心); list.add(公司公告); list.add(企业通讯录); list.add(GPS定位); list.add(个人签到); list.add(出差登记); ArrayAdapter myArrayAdapter = new ArrayAdapter (this,android.R.layout.simple_list_item_1,list); mylistview.setAdapter(myArrayAdapter); mylistview.setOnItemClickListener(new OnItemClickListener()Overridepublic void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) / TODO Auto-generated method stubif(list.get(arg2).equals(个人中心) Intent intent = new Intent(); intent.setClass(Three.this, ContactsManager.class); startActivity(intent); if(list.get(arg2).equals(公司公告) Intent intent = new Intent(); intent.setClass(Three.this, ContactsManager.class); startActivity(intent); if(list.get(arg2).equals(企业通讯录) Intent intent = new Intent(); intent.setClass(Three.this, ContactsManager.class); startActivity(intent); if(list.get(arg2).equals(GPS定位) Intent intent = new Intent(); intent.setClass(Three.this, ContactsManager.class); startActivity(intent); if(list.get(arg2).equals(个人签到) Intent intent = new Intent(); intent.setClass(Three.this, GPS.class); startActivity(intent); if(list.get(arg2).equals(出差登记) Intent intent = new Intent(); intent.setClass(Three.this, ContactsManager.class); startActivity(intent); ); 图2.1 公众号主界面2.1.2 获取企业通讯录功能的实现企业通讯录就是手机内部储存数据库,手工录入电话号码等信息功能代码函数:public class ContactsManager extends ExpandableListActivity public static final String TAG=ContactsManager;private ContactsManagerDBAdapter contactsManagerDbAdapter;int groupNameIndex;private MyCursrTreeAdapter myCursorTreeAdapter;View view;PopupWindow pop;Button sms;Button btnCall;/缓存除了所选联系人所在组的所有组,用在移动联系人上String groups;/缓存用户所在的组,用在移动联系人上String mygroupName;/长按分组上的 菜单public static final int MENU_GROUP_ADD=Menu.FIRST;public static final int MENU_GROUP_DELETE=Menu.FIRST+1;public static final int MENU_GROUP_MODIFY=Menu.FIRST+2;public static final int MENU_GROUP_ADDCONTACT=Menu.FIRST+3;/长按联系人菜单public static final int MENU_CONTACTS_DELETE=Menu.FIRST;public static final int MENU_CONTACTS_MODIFY=Menu.FIRST+1;public static final int MENU_CONTACTS_MOVE=Menu.FIRST+2;/联系人各个字段索引private static final int icon_index=1;private static final int name_index=2;private static final int description_index=3;private static final int telPhone_index=4;private static final int email_index=5;/组上groupName字段索引private static final int groupName_index=1;Cursor groupCursor; public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.contactsmanager); getExpandableListView().setBackgroundResource(R.drawable.default_bg); registerForContextMenu(getExpandableListView(); contactsManagerDbAdapter=new ContactsManagerDBAdapter(this); contactsManagerDbAdapter.open(); initMyAdapter(); initPopupWindow(); getExpandableListView().setCacheColorHint(0);/拖动时避免出现黑色 getExpandableListView().setDivider(null);/去掉每项下面的黑线(分割线) /自定义下拉图标 getExpandableListView().setGroupIndicator(getResources().getDrawable(R.anim.expander_ic_folder); private void initPopupWindow()view = this.getLayoutInflater().inflate(R.layout.popup_window, null);pop = new PopupWindow(view, ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);pop.setOutsideTouchable(true);sms=(Button)view.findViewById(R.id.btnsms);btnCall=(Button)view.findViewById(R.id.btnCall); /给适配器赋值,刷新界面的时候也会用到 public void initMyAdapter() groupCursor=contactsManagerDbAdapter.getAllGroups(); startManagingCursor(groupCursor); /get the groupName column index groupNameIndex=groupCursor.getColumnIndexOrThrow(groupName); /set my adapter myCursorTreeAdapter=new MyCursrTreeAdapter( groupCursor, this, true ); setListAdapter(myCursorTreeAdapter); public class MyCursrTreeAdapter extends CursorTreeAdapter public MyCursrTreeAdapter(Cursor cursor, Context context,boolean autoRequery) super(cursor, context, autoRequery);Overrideprotected void bindGroupView(View view, Context context, Cursor cursor,boolean isExpanded) / TODO Auto-generated method stubLog.v(TAG, bindGroupView);TextView groupName=(TextView)view.findViewById(R.id.groupName);String group=cursor.getString(groupName_index);groupName.setText(group);TextView groupCount=(TextView)view.findViewById(R.id.groupCount);int count=contactsManagerDbAdapter.getCountContactByGroupName(group);groupCount.setText(+count+);图2.1 企业通讯录2.1.3 GPS定位的实现GPS定位是通过百度地图实现,可以实时显示外勤人员的地址,经纬度以及高度,实时数据传输。功能代码函数:public class GPS extends MapActivity /添加百度地图的相关控件private MapView mapView;private BMapManager bMapManager;/加载地图的引擎/百度地图的keyprivate String keyString = A270F85CD72A01E8519A9677A75FB4016ED9A5A3;/在百度地图上添加一些控件,比如是放大缩小的控件private MapController mapController;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.gps);mapView = (MapView)this.findViewById(R.id.bmapView);bMapManager = new BMapManager(GPS.this);/必须加载keybMapManager.init(keyString, new MKGeneralListener()Overridepublic void onGetPermissionState(int arg0) / TODO Auto-generated method stubif(arg0 = 300)Toast.makeText(GPS.this, 输入的key有错!请核实!, 1).show();Overridepublic void onGetNetworkState(int arg0) / TODO Auto-generated method stub);this.initMapActivity(bMapManager);mapView.setBuiltInZoo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论