精华内容
下载资源
问答
  • 公司要把一些数据在安卓app上通过调用手机邮箱以附件的形式发送给某些人员,经过调试,最终成功地完成数据存储到本地,然后转化成邮件的多个附件,发送多个文本附件,邮箱发送后回调,这期间一直调用的是系统邮箱,...
          公司要把一些数据在安卓app上通过调用手机邮箱以附件的形式发送给某些人员,经过调试,最终成功地完成数据存储到本地,然后转化成邮件的多个附件,发送多个文本附件,邮箱发送后回调,这期间一直调用的是系统邮箱,发送取消、成功、失败都能正常回调、返回到点击发送邮件的界面,后来用户反映打开邮箱后发送取消后不能退出来,一直按返回键退出程序了,再打开A还是在邮箱界面,听这么一说,我认为这是发送取消后A应用崩溃了,这么严重的问题,那我得赶紧查查,用了好几个手机测试,各种测试,也没重现用户反映的问题,正好用户还要来公司办事,那等着他来再看问题的具体情形,第二天见到用户,演示他怎么操作的,原来是打开的qq邮箱,经过摸索,在qq邮箱里有个关闭应用,关闭后,就可以回到A应用,但是这样体验非常不好,每次主动跳到关闭qq邮箱界面去关闭,那就太麻烦了,公司也是不允许给用户带来如此不便,然后几个手机下载了qq邮箱,经过测试,在A中打开qq邮箱后,还真是都退不出来,然后网上搜了各种资料,没有一个有关打开手机qq邮箱后无法返回原来的应用的解答,看来这问题是我一个人遇见啊,期间还测试了苹果手机打开qq邮箱会怎么样,结果苹果手机在A应用上打开qq邮箱后能正常退出来,然后还测试了其他app打开qq邮箱后也能正常返回到原来的界面,看来不是qq邮箱的问题,一定是A应用哪里没写对,在测试时还偶然发现,如果qq邮箱先打开了,再在A应用打开qq邮箱返回的话是可以正常返回出来的,经过各种测试,必须先在调qq邮箱之前打开qq邮箱,才能退出来,调用开启qq邮箱再去打开qq邮箱是无法退出qq邮箱的,但是先打开qq邮箱再去打开A应用,体验也是非常不好,公司肯定不允许,那怎么办呢,既然问题已经确定,也没其他现成的解决之法,那就分析自己的代码吧,原来代码如下
    public static void sendXX(Activity context, String name) {
    File mZipFile = new File(String.valueOf(context.getCacheDir()));
            File[] files = mZipFile.listFiles();
            if (files != null) {
                ArrayList<Uri> uris = new ArrayList();
                for (int i = 0; i < files.length; i++) {
                    File file = files[i];
                    LogUtil.e("发送附件地址=" + file.getAbsolutePath());
                    Uri uriForFile = FileProvider.getUriForFile(context, "com.hand.hand16.provider", file);
                    uris.add(uriForFile);
                }
    
                Intent intent = new Intent();
    
                intent.setAction(Intent.ACTION_SEND_MULTIPLE);
             
                // 收件人
                intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"670421141@qq.com","609505621@qq.com",});
                // 主题
                intent.putExtra(Intent.EXTRA_SUBJECT, "标定数据-"+name);
                // 正文
               //intent.putExtra(android.content.Intent.EXTRA_TEXT, "标定数据");//多附件发送执行这句会有string不能转化为list的警告;
                intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
                intent.setType("text/plain");
            
                context.startActivityForResult(intent,1);
            }
     }

    因为邮箱发送不管取消、成功、失败还要其他业务逻辑去处理,所以用了回调,重新看了代码,想起打开第三方某个activity,会用到一个设置:
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    想起就干,把这句加到 Intent intent = new Intent()之后,奇迹出现了,再次从A应用打开qq邮箱,返回,都可以正常返回到原来的界面,不会一直停留在qq邮箱界面。为什么加了这句就可以正常返回呢,以及先打开qq邮箱也可以正常返回呢,再此基础上,后来还发现,不用context.startActivityForResult(intent,1), 也不用intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)去调用邮箱,而用  context.startActivity(intent);也能正常返回,而绝大部分人用的都是不用回调的方法打开邮箱的,也许是业务对邮件发送状态不需要这也是为什么网上搜不到我遇见的问题;
    展开全文
  • 首先声明者只是一个个人开发的个人使用的小程序,本意是为了防止手机被盗而写的,由于程序需要在不为人知的情况下采集信息然后发送,所以程序没有...4、将采集的信息发送到指定邮箱中(本文以qq邮箱实现,由于代码太...

    首先声明者只是一个个人开发的个人使用的小程序,本意是为了防止手机被盗而写的,由于程序需要在不为人知的情况下采集信息然后发送,所以程序没有界面。整个程序的大概思路是这样的

    手机开始时:

    1、获取手机联系人信息、通话记录、手机号码

    2、检查手机gps状态:关闭状态则开启 ,然后获取手机的所在地

    3、检查手机网络开关,关闭则开启

    4、将采集的信息发送到指定邮箱中(本文以qq邮箱实现,由于代码太多这里就不贴出来了,有需要的联系我)

    5、手机网络还原到初始状态、关闭gps(尚未实现,有实现的朋友可以一起研究一下)

    添加权限

     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

     <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>

     

    下面我们就按部就班来实现我们的想法:

    1、获取联系人、电话号码、通话记录:

    /**
     * 获取本机号码
     * @param context
     * @return
     */
     public static String getLocalNumber() {
      TelephonyManager mTelephonyMgr;
      mTelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
      return mTelephonyMgr.getLine1Number();
     }

     /**
      * 获取联系人
      * @param context
      * @return
      */
     public static  String getContact(){
      ContentResolver cr = context.getContentResolver();    
      //取得电话本中开始一项的光标  
      Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);  
      String string ="";
      while (cursor.moveToNext())  
      {  
          // 取得联系人名字  
         int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);  
          String name = cursor.getString(nameFieldColumnIndex);  
          string += ("联系人:"+name+", 电话号码:");  
          // 取得联系人ID  
          String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));  
          Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,       ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " 
                  + contactId, null, null);  
       
          // 取得电话号码(可能存在多个号码)  
          int i=0;
          while (phone.moveToNext())  
          {  
              String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));  
              if(i==0){
                 string += (strPhoneNumber);    
              }else{
                 string += ("," + strPhoneNumber);    
              }
           
              i++;
          }  
          string += "\n";  
          phone.close();  
          System.out.println("persion:"+string);
      }  
      cursor.close();
      return string;
     }

     

     

    /**

    *获取通话记录

    */

    public static List<Call> getCallList() {
      List<Call> callList = new ArrayList<Call>();
      int type;
      Date date;
      String time = "";
      String telName = "";
      String telNo = "";

      ContentResolver cr = context.getContentResolver();
      final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI,
        new String[] { CallLog.Calls.NUMBER, CallLog.Calls.CACHED_NAME,
          CallLog.Calls.TYPE, CallLog.Calls.DATE,
          CallLog.Calls.DURATION }, null, null,
        CallLog.Calls.DEFAULT_SORT_ORDER);
      for (int i = 0; i < cursor.getCount(); i++) {
       Call call = new Call();
       cursor.moveToPosition(i);
       telName = cursor.getString(1);
       telNo = cursor.getString(0);
       type = cursor.getInt(2);
       SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       date = new Date(Long.parseLong(cursor.getString(3)));
       time = sfd.format(date);
       // call.setLongTime(formatDuring(Long.valueOf(cursor.getString(4))));
       // String callDate = getdays(Long.parseLong(cursor.getString(3)));
       if (telName != null) {
        call.setName(telName);
       } else {
        call.setName("未知联系人");
       }
       call.setNumber(telNo);
       call.setTime(time);

       if (CallLog.Calls.INCOMING_TYPE == type) {
        call.setType("接听");
       } else if (CallLog.Calls.OUTGOING_TYPE == type) {
        call.setType("拨出");
       } else if (CallLog.Calls.MISSED_TYPE == type) {
        call.setType("未接");
       }
       callList.add(call);
      }
      return callList;
     }

     private String formatDuring(long mss) {
      long hours = mss / (60 * 60);
      long minutes = (mss % (1000 * 60 * 60)) / 60;
      long seconds = (mss % (1000 * 60));
      return hours + ":" + minutes + ":" + seconds;
     }

     private String getdays(long callTime) {
      String value = "";
      long newTime = new Date().getTime();
      long duration = (newTime - callTime) / (1000 * 60);
      if (duration < 60) {
       value = duration + "分钟前";
      } else if (duration >= 60 && duration < DAY) {
       value = (duration / 60) + "小时前";
      } else if (duration >= DAY && duration < DAY * 2) {
       value = "昨天";
      } else if (duration >= DAY * 2 && duration < DAY * 3) {
       value = "前天";
      } else if (duration >= DAY * 7) {
       SimpleDateFormat sdf = new SimpleDateFormat("M月dd日");
       value = sdf.format(new Date(callTime));
      } else {
       value = (duration / DAY) + "天前";
      }
      return value;
     }

     

    /**

    *实体类

    */

    public class Call {
     private String name;
     private String number;
     private String time;
     private String type;

    }

    展开全文
  •  相信很多小伙伴在登录win10自带的邮箱登录QQ邮箱时,显示同步失败或者登录超时,但又找不到相关的资料,下面是我自己邮箱的操作流程,小伙伴可以尝试一下,有什么问题留言即可  一、准备工作:  登录网页版QQ...
        

    win10自带邮箱如何使用?

      相信很多小伙伴在登录win10自带的邮箱登录QQ邮箱时,显示同步失败或者登录超时,但又找不到相关的资料,下面是我自己邮箱的操作流程,小伙伴可以尝试一下,有什么问题留言即可

      一、准备工作:

        登录网页版QQ邮箱,设置→账户→找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”中的“IMAP/SMTP服务 (什么是 IMAP,它又是如何设置?)”,点击“开启”,

          

     

     

     

      根据提示的手机号发送验证码,

          

     

      发送完成之后点击“我已发送”,然后弹出一下授权码(注意:这里弹出的授权码不要着急点击确认,因为每次的授权码不一样,等登录完成之后在点击确认

          

     

     

     

     二、开始正式登录win10自带邮件

       1、在电脑开始栏中即可找到系统自带的邮箱,如果找步到点击“开始”中找到邮件。或者是由底部搜索功能,所有邮件。     

          

        2、点击“账户”。

          

     

        3、选择“其他账户”。

         

        4、  输入qq邮箱、名字(自定义)、准备工作的授权码,然后点击“登录”。

         

     

        5、添加完成的页面如下

         

     

      到这里就完成使用win10自带邮件登录qq邮箱。 

     

     

     

     

    展开全文
  • 项目:向某邮箱/手机/QQ发送表白信息。需要用到与服务器交互的功能点有:注册、登录、找回密码、加载表白主题、发送表白信息、接收系统消息、加载个人资料等。 以下为登录调用的与Server交互的方法: /** * ...

    项目:向某邮箱/手机/QQ发送表白信息。需要用到与服务器交互的功能点有:注册、登录、找回密码、加载表白主题、发送表白信息、接收系统消息、加载个人资料等。

    以下为登录调用的与Server交互的方法:

    /**
    	 * 用于用户登录
    	 * 
    	 * @param userName
    	 * @param password
    	 * @return
    	 * @throws ParseException 
    	 * @throws IOException
    	 */
    	public String doLogin(String name, String pass) throws IOException  {
    		client = new DefaultHttpClient();
    		httpPost = new HttpPost("http://192.168.2.100:81/index.php/contract/index");//登录功能仅用到这个地址(内测时要改为测试服务器地址) 	         httpPost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
    		HttpEntity entity = null;
    		String test=null;
    
    		/** 声明登录的参数 */
    		List<NameValuePair> list = new ArrayList<NameValuePair>();
    		list.add(new BasicNameValuePair("uid", name));
    		list.add(new BasicNameValuePair("password", pass));
    	try{
    		try{
    			try{
    			httpPost.setEntity(new UrlEncodedFormEntity(list, HTTP.UTF_8));
    			/** 执行http发送数据 */
    			response = client.execute(httpPost);
    			/** 获取cookie数据 */
    			Header[] header = response.getHeaders("Set-Cookie");
    			entity = response.getEntity();
    			test = EntityUtils.toString(entity, "UTF-8");
    		         entity.consumeContent();
    	} catch(InterruptedIOException e){
    		Log.v("returnString->", e.toString());
    		test="";
    		//e.printStackTrace();
    	}
    	} catch (UnsupportedEncodingException e) {
    		// TODO Auto-generated catch block
    		test="";
    		e.printStackTrace();
    	}			
        } catch (ClientProtocolException e) {
    		// TODO Auto-generated catch block
        	test="";
    		e.printStackTrace();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		test="";
    		e.printStackTrace();
    	}
    		return test;
    	}
    	

    以下为其他功能点与Server交互时调用的公用方法:

    public String doPost(String xmlString, String userName, String password) throws IOException   {
      client = new DefaultHttpClient();
    //  client.getCredentialsProvider().setCredentials(new AuthScope(domain, 80), 
    //    new UsernamePasswordCredentials(userName, password));
      /** 创建httpGet */
      httpPost = new HttpPost("/index.php/mobile/microblog");//非登录的功能点用到的2个Server地址之一
      httpPost.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE,
        false);
      host = new HttpHost("192.168.2.100", 81, "http");//非登录的功能点用到的2个Server地址之一。参数1为服务器IP(内测时要改为测试服务器IP),参数2为服务器端口(内测时要改为测试服务器端口),参数3的http会拼到网页地址中。
    
      byte[] encodedPassword    =  (userName + ":" + password).getBytes();
      httpPost.setHeader("Authorization", "Basic " + Base64.encodeBytes(encodedPassword).toString());
    
      StringEntity stringEntity;
      String logString = null;
      HttpEntity entity = null;
      stringEntity = new StringEntity(xmlString, HTTP.UTF_8);
      httpPost.setEntity(stringEntity);
      response = client.execute(host, httpPost);
      entity = response.getEntity();
      logString = EntityUtils.toString(response.getEntity(), "UTF-8");
      entity.consumeContent();
      return logString;
    }
    

    用户端与测试服务器联调时,怎么也连接不上测试服务器,无法与Server交互。所谓与服务器的交互,一定要用到服务器相关的地址,正确修改相关的地址,也就能正确地连接到测试服务器。问题的解决如下:

    1.上述方法里提到的内测应改的地址没有写IP,写的是域名如"test.3jiu.com",而这个域名与IP的映射是需要在hosts文件里配置的。手机中的hosts文件没有配,当然无法识别。可以试着配一下,但我配了以后仍然无法识别,遂直接改用IP地址;

    2..改为IP地址后,问题依然存在。原来是传递给Server某方法的参数的排序有误(如用户端找回密码时要给Server端的找回密码方法传递参数);

    3.参数正确排序,问题依然存在。原来是host = new HttpHost("192.168.2.100", 81, "http")中的端口号仍写的是正式服务器的端口号80而非测试服务器的端口号81;

    4.端口号也修改后,问题解决,与测试服务器交互成功。该问题解决的关键是没有清晰理解host = new HttpHost("192.168.2.100", 81, "http")中各参数的含义,所以以后定位解决问题不能草草了事,要理解代码逻辑。

     

     

    展开全文
  • [18/12/04 11:30:37] [info] 等待手机QQ扫描二维码... [18/12/04 11:31:02] [info] 检查安全代码... [18/12/04 11:31:02] [info] 获取数据验证参数... [18/12/04 11:31:02] [error] 获取数据验证参数失败... [18/12/...
  • 7、 短信/邮件内容可自行管理,强大的内容订制功能,可个性化自行定制短信/邮件内容,可插入客户名字、显示的公司名、 订单ID、价格、支付方式、客户手机、 地址、产品网址、客服电话、客服QQ、产品名称内容 ...
  • 户名字、显示的公司名、 订单ID、价格、支付方式、客户手机、 地址、产品网址、客服电话、客服QQ、产 品名称内容 8、 增加短信提醒,系统会通过邮件或手机给您提醒及时查看。 9、 对提交的非法数据进行过滤 10、 ...
  • 1、邮件提醒+手机短信提醒{手机邮箱开启短信提示功能即可},特别增强对将QQ邮箱设置为订单发件箱的支持;邮件标题进一步优化,显示订单编号、姓名(会员名)、联系电话 2、产品套餐选择支持单选、复选、下拉选择,...
  • 淘宝自动发货-淘小白

    2013-04-28 13:33:11
    6.修复部分系统旺旺发送失败的BUG 7.修复部分系统使用淘小白过程中IE进程可能增多的BUG 8.修复部分系统淘使用小白过程中内存过大的BUG 9.修复部分系统邮件智能补发无法送达的BUG 10.修复移动182,183号段无法使用...
  • 后台通过页面传递的手机号码,随机生成4位数的验证码并且缓存,之后通过发送139邮箱的方式发送到指定的手机手机收取到验证码之后输入验证码提交,判断是否正确,正确则注册成功,失败则注册失败。用户注册完之后...
  • 11.集成QQ邮箱发送分享通知 #Fly Box 1 8 1 修正版 在1 8基础上更新: 1 基础资料分页显示问题 2 基础资料搜索问题 #Fly Box 1 8 更新: 1 时间显示问题 2 增加几套主题 3 修复基础数据管理Bug 4 增加分享...
  • 2.★验证码支持利用短信或邮箱发送。短信模板已支持国内常用短信平台的接口,支持腾讯云短信接口。配置简单。 3.针对整个站点能一键开启或关闭用户注册、投票、评论、匿名评论、评论自动审核、文章自动审核功能。 4....
  • 2:智能自动: 填写QQ自动填写QQ邮箱; 填写手机或电话自动填写归属地、自动填写客户分区; 填写身份证号码自动填写生日、自动填写性别; 自动填写选择非常频繁的子菜单(后台可选); 自动填写当前时间、当前...
  • 11.集成QQ邮箱发送分享通知 #Fly Box 1 8 1 修正版 在1 8基础上更新: 1 基础资料分页显示问题 2 基础资料搜索问题 #Fly Box 1 8 更新: 1 时间显示问题 2 增加几套主题 3 修复基础数据管理Bug 4 增加分享...
  • 8:智能自动: 填写QQ自动填写QQ邮箱; 填写手机或电话自动填写归属地、自动填写客户分区; 填写身份证号码自动填写生日、自动填写性别; 自动填写选择非常频繁的子菜单(后台可选); 自动填写当前时间、当前...
  • 尹成Python27天入门到项目实战

    千人学习 2020-12-05 17:04:22
    预编译的概念搜索技能搜索用在找出第一个邮箱手机提取findall字符串切割筛选正则表达式正则表达式替换单个字符判断中括号选择一个字符正则表达式次数正则开头结尾括号与选择正则表达式特殊符号day19down 递归与爬虫...
  • 3.★验证码支持短信、邮箱发送。短信模板已支持国内常用短信平台的接口,支持腾讯云短信接口。配置简单。 4.支持最高权限后台登录的限制登录IP功能。IP或IP范围设置灵活,可以同时设多个IP及IP范围的任间组合。 5....
  • 11.集成QQ邮箱发送分享通知 #Fly.Box 1.8.1(修正版) 更新: 1. 基础资料分页显示问题 2. 基础资料搜索问题 #Fly.Box 1.8 更新: 1. 时间显示问题 2. 增加几套主题 3. 修复基础数据管理Bug 4. 增加分享...
  • 11.集成QQ邮箱发送分享通知 #Fly.Box 1.8.1(修正版) 更新: 1. 基础资料分页显示问题 2. 基础资料搜索问题 #Fly.Box 1.8 更新: 1. 时间显示问题 2. 增加几套主题 3. 修复基础数据管理Bug 4. 增加分享中心...
  • 11.集成QQ邮箱发送分享通知 #Fly.Box 1.8.1(修正版) 更新: 1. 基础资料分页显示问题 2. 基础资料搜索问题 #Fly.Box 1.8 更新: 1. 时间显示问题 2. 增加几套主题 3. 修复基础数据管理Bug 4. 增加分享中心...
  • 11.集成QQ邮箱发送分享通知 #Fly.Box 1.8.1(修正版) 更新: 1. 基础资料分页显示问题 2. 基础资料搜索问题 #Fly.Box 1.8 更新: 1. 时间显示问题 2. 增加几套主题 3. 修复基础数据管理Bug 4. 增加分享...
  • FIX 纵横搜索修正X2热门话题词获取失败时短时间内重复请求云平台问题 FIX 纵横搜索带中文链接进行rawurlencode处理 FIX 修正正模块模板只允许index[0-9]的BUG FIX 快速回帖显示楼层号错误,当...
  • 修复 后台测试邮件发送失败提示问题 修复 后台‘邮件营销’发送问题 修复 后台APP二维码问题 修复 后台简历列表,刷新时间问题 修复 投递简历后弹窗提示,二维码问题 修复 职位详情页,点击‘请登录后查看联系方式’...
  • 11.集成QQ邮箱发送分享通知 #Fly.Box 1.8.1(修正版) 更新: 1. 基础资料分页显示问题 2. 基础资料搜索问题 #Fly.Box 1.8 更新: 1. 时间显示问题 2. 增加几套主题 3. 修复基础数据管理Bug 4. 增加分享中心...
  • `is_sent` tinyint(3) NOT NULL COMMENT '1-发送成功, 0-发送失败', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_...
  • 主要特点: ... 2、强大而灵活的邮件提醒机制:N天未登录提醒、同城好友推荐提醒、生日...28、增加同城异性会员定期推荐邮件功能,对于N(N的数值可在后台配置)天未登录的会员,可以向其邮箱发送同城异性会员推荐邮件!
  • 2、强大而灵活的邮件提醒机制:N天未登录提醒、同城好友推荐提醒、生日提醒等,有效...28、增加同城异性会员定期推荐邮件功能,对于N(N的数值可在后台配置)天未登录的会员,可以向其邮箱发送同城异性会员推荐邮件!
  • 幸福E梦缘交友网源码

    2011-05-13 15:43:31
    主要特点: ... 2、强大而灵活的邮件提醒机制:N天未登录提醒、同城好友推荐提醒、生日...28、增加同城异性会员定期推荐邮件功能,对于N(N的数值可在后台配置)天未登录的会员,可以向其邮箱发送同城异性会员推荐邮件!
  • 233、修复 WPS, 网易邮箱等在 Q 设备上崩溃的问题 232、修复汤姆猫跑酷在部分 Q 设备上崩溃的问题 231、修复 QQ 在部分 Q 设备上崩溃的问题 2019年 10月25号 至 2019年 11月1号 商业版代码更新内容 230、修复克隆...
  • 邮箱 1 liushaoming 944147540 liushaomingdev@163.com 联系作者 联系方式 Leader liushaoming email liushaomingdev@163.com QQ群2 1043200253 QQ群1(已满) 612871570 加QQ群讨论 qq群号...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

手机qq邮箱发送失败