• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java PduParser类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中ws.com.google.android.mms.pdu.PduParser的典型用法代码示例。如果您正苦于以下问题:Java PduParser类的具体用法?Java PduParser怎么用?Java PduParser使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



PduParser类属于ws.com.google.android.mms.pdu包,在下文中一共展示了PduParser类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: send

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
@Override
@TargetApi(VERSION_CODES.LOLLIPOP)
public @Nullable synchronized SendConf send(@NonNull byte[] pduBytes, int subscriptionId)
    throws UndeliverableMessageException
{
  beginTransaction();
  try {
    MmsBodyProvider.Pointer pointer = MmsBodyProvider.makeTemporaryPointer(getContext());
    Util.copy(new ByteArrayInputStream(pduBytes), pointer.getOutputStream());

    SmsManager smsManager;

    if (VERSION.SDK_INT >= 22 && subscriptionId != -1) {
      smsManager = SmsManager.getSmsManagerForSubscriptionId(subscriptionId);
    } else {
      smsManager = SmsManager.getDefault();
    }

    smsManager.sendMultimediaMessage(getContext(),
                                     pointer.getUri(),
                                     null,
                                     null,
                                     getPendingIntent());

    waitForResult();

    Log.w(TAG, "MMS broadcast received and processed.");
    pointer.close();

    if (response == null) {
      throw new UndeliverableMessageException("Null response.");
    }

    return (SendConf) new PduParser(response).parse();
  } catch (IOException | TimeoutException e) {
    throw new UndeliverableMessageException(e);
  } finally {
    endTransaction();
  }
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:41,代码来源:OutgoingLollipopMmsConnection.java


示例2: onRun

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
@Override
public void onRun() {
  if (data == null) {
    Log.w(TAG, "Received NULL pdu, ignoring...");
    return;
  }

  PduParser parser = new PduParser(data);
  GenericPdu pdu   = parser.parse();

  if (pdu != null && pdu.getMessageType() == PduHeaders.MESSAGE_TYPE_NOTIFICATION_IND) {
    MmsDatabase database                = DatabaseFactory.getMmsDatabase(context);
    Pair<Long, Long> messageAndThreadId = database.insertMessageInbox((NotificationInd)pdu);

    Log.w(TAG, "Inserted received MMS notification...");

    ApplicationContext.getInstance(context)
                      .getJobManager()
                      .add(new MmsDownloadJob(context,
                                              messageAndThreadId.first,
                                              messageAndThreadId.second,
                                              true));
  }
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:25,代码来源:MmsReceiveJob.java


示例3: retrieve

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
public RetrieveConf retrieve(Apn contentApn, byte[] transactionId, boolean usingMmsRadio, boolean useProxyIfAvailable)
    throws IOException, ApnUnavailableException
{
  byte[] pdu = null;

  final boolean useProxy   = useProxyIfAvailable && contentApn.hasProxy();
  final String  targetHost = useProxy
                           ? contentApn.getProxy()
                           : Uri.parse(contentApn.getMmsc()).getHost();
  if (checkRouteToHost(context, targetHost, usingMmsRadio)) {
    Log.w(TAG, "got successful route to host " + targetHost);
    pdu = execute(constructRequest(contentApn, useProxy));
  }

  if (pdu == null) {
    throw new IOException("Connection manager could not obtain route to host.");
  }

  RetrieveConf retrieved = (RetrieveConf)new PduParser(pdu).parse();

  if (retrieved == null) {
    Log.w(TAG, "Couldn't parse PDU, byte response: " + Arrays.toString(pdu));
    Log.w(TAG, "Couldn't parse PDU, ASCII:         " + new String(pdu));
    throw new IOException("Bad retrieved PDU");
  }

  sendRetrievedAcknowledgement(transactionId, usingMmsRadio, useProxy);
  return retrieved;
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:30,代码来源:IncomingLegacyMmsConnection.java


示例4: onRun

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
@Override
public void onRun() {
  if (data == null) {
    Log.w(TAG, "Received NULL pdu, ignoring...");
    return;
  }

  PduParser  parser = new PduParser(data);
  GenericPdu pdu    = null;

  try {
    pdu = parser.parse();
  } catch (RuntimeException e) {
    Log.w(TAG, e);
  }

  if (isNotification(pdu) && !isBlocked(pdu)) {
    MmsDatabase database                = DatabaseFactory.getMmsDatabase(context);
    Pair<Long, Long> messageAndThreadId = database.insertMessageInbox((NotificationInd)pdu, subscriptionId);

    Log.w(TAG, "Inserted received MMS notification...");

    ApplicationContext.getInstance(context)
                      .getJobManager()
                      .add(new MmsDownloadJob(context,
                                              messageAndThreadId.first,
                                              messageAndThreadId.second,
                                              true));
  } else if (isNotification(pdu)) {
    Log.w(TAG, "*** Received blocked MMS, ignoring...");
  }
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:33,代码来源:MmsReceiveJob.java


示例5: isRelevant

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
private boolean isRelevant(Context context, Intent intent) {
  if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.DONUT) {
    return false;
  }

  if (!ApplicationMigrationService.isDatabaseImported(context)) {
    return false;
  }

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT &&
      Telephony.Sms.Intents.WAP_PUSH_RECEIVED_ACTION.equals(intent.getAction()) &&
      Util.isDefaultSmsProvider(context))
  {
    return false;
  }

  if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT &&
      TextSecurePreferences.isInterceptAllMmsEnabled(context))
  {
    return true;
  }

  byte[] mmsData   = intent.getByteArrayExtra("data");
  PduParser parser = new PduParser(mmsData);
  GenericPdu pdu   = parser.parse();

  if (pdu.getMessageType() != PduHeaders.MESSAGE_TYPE_NOTIFICATION_IND)
    return false;

  NotificationInd notificationPdu = (NotificationInd)pdu;

  if (notificationPdu.getSubject() == null)
    return false;

  return WirePrefix.isEncryptedMmsSubject(notificationPdu.getSubject().getString());
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:37,代码来源:MmsListener.java


示例6: retrieve

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
public RetrieveConf retrieve(boolean usingMmsRadio, boolean useProxyIfAvailable)
    throws IOException, ApnUnavailableException
{
  byte[] pdu = null;

  final boolean useProxy   = useProxyIfAvailable && apn.hasProxy();
  final String  targetHost = useProxy
                           ? apn.getProxy()
                           : Uri.parse(apn.getMmsc()).getHost();
  try {
    if (checkRouteToHost(context, targetHost, usingMmsRadio)) {
      Log.w(TAG, "got successful route to host " + targetHost);
      pdu = makeRequest(useProxy);
    }
  } catch (IOException ioe) {
    Log.w(TAG, ioe);
  }

  if (pdu == null) {
    throw new IOException("Connection manager could not obtain route to host.");
  }

  RetrieveConf retrieved = (RetrieveConf)new PduParser(pdu).parse();

  if (retrieved == null) {
    Log.w(TAG, "Couldn't parse PDU, byte response: " + Arrays.toString(pdu));
    Log.w(TAG, "Couldn't parse PDU, ASCII:         " + new String(pdu));
    throw new IOException("Bad retrieved PDU");
  }

  return retrieved;
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:33,代码来源:IncomingMmsConnection.java


示例7: isRelevant

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
private boolean isRelevant(Context context, Intent intent) {
  if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.DONUT) {
    return false;
  }

  if (!ApplicationMigrationService.isDatabaseImported(context)) {
    return false;
  }

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT &&
      Telephony.Sms.Intents.WAP_PUSH_RECEIVED_ACTION.equals(intent.getAction()) &&
      Util.isDefaultSmsProvider(context))
  {
    return false;
  }

  if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT &&
      TextSecurePreferences.isInterceptAllMmsEnabled(context))
  {
    return true;
  }

  byte[] mmsData   = intent.getByteArrayExtra("data");
  PduParser parser = new PduParser(mmsData);
  GenericPdu pdu   = parser.parse();

  if (pdu == null || pdu.getMessageType() != PduHeaders.MESSAGE_TYPE_NOTIFICATION_IND) {
    Log.w(TAG, "Received Invalid notification PDU");
    return false;
  }

  NotificationInd notificationPdu = (NotificationInd)pdu;

  if (notificationPdu.getSubject() == null)
    return false;

  return WirePrefix.isEncryptedMmsSubject(notificationPdu.getSubject().getString());
}
 
开发者ID:Agilitum,项目名称:TextSecureSMP,代码行数:39,代码来源:MmsListener.java


示例8: retrieve

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
@Override
@TargetApi(VERSION_CODES.LOLLIPOP)
public synchronized @Nullable RetrieveConf retrieve(@NonNull String contentLocation,
                                                    byte[] transactionId) throws MmsException
{
  beginTransaction();

  try {
    MmsBodyProvider.Pointer pointer = MmsBodyProvider.makeTemporaryPointer(getContext());

    Log.w(TAG, "downloading multimedia from " + contentLocation + " to " + pointer.getUri());
    SmsManager.getDefault().downloadMultimediaMessage(getContext(),
                                                      contentLocation,
                                                      pointer.getUri(),
                                                      null,
                                                      getPendingIntent());

    waitForResult();

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    Util.copy(pointer.getInputStream(), baos);
    pointer.close();

    Log.w(TAG, baos.size() + "-byte response: " + Hex.dump(baos.toByteArray()));

    return (RetrieveConf) new PduParser(baos.toByteArray()).parse();
  } catch (IOException | TimeoutException e) {
    Log.w(TAG, e);
    throw new MmsException(e);
  } finally {
    endTransaction();
  }
}
 
开发者ID:Agilitum,项目名称:TextSecureSMP,代码行数:34,代码来源:IncomingLollipopMmsConnection.java


示例9: send

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
@Override
@TargetApi(VERSION_CODES.LOLLIPOP)
public @Nullable synchronized SendConf send(@NonNull byte[] pduBytes) throws UndeliverableMessageException {
  beginTransaction();
  try {
    MmsBodyProvider.Pointer pointer = MmsBodyProvider.makeTemporaryPointer(getContext());
    Util.copy(new ByteArrayInputStream(pduBytes), pointer.getOutputStream());

    SmsManager.getDefault().sendMultimediaMessage(getContext(),
                                                  pointer.getUri(),
                                                  null,
                                                  null,
                                                  getPendingIntent());

    waitForResult();

    Log.w(TAG, "MMS broadcast received and processed.");
    pointer.close();

    if (response == null) {
      throw new UndeliverableMessageException("Null response.");
    }

    return (SendConf) new PduParser(response).parse();
  } catch (IOException | TimeoutException e) {
    throw new UndeliverableMessageException(e);
  } finally {
    endTransaction();
  }
}
 
开发者ID:Agilitum,项目名称:TextSecureSMP,代码行数:31,代码来源:OutgoingLollipopMmsConnection.java


示例10: onRun

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
@Override
public void onRun() {
  if (data == null) {
    Log.w(TAG, "Received NULL pdu, ignoring...");
    return;
  }

  PduParser  parser = new PduParser(data);
  GenericPdu pdu    = null;

  try {
    pdu = parser.parse();
  } catch (RuntimeException e) {
    Log.w(TAG, e);
  }

  if (isNotification(pdu) && !isBlocked(pdu)) {
    MmsDatabase database                = DatabaseFactory.getMmsDatabase(context);
    Pair<Long, Long> messageAndThreadId = database.insertMessageInbox((NotificationInd)pdu);

    Log.w(TAG, "Inserted received MMS notification...");

    ApplicationContext.getInstance(context)
                      .getJobManager()
                      .add(new MmsDownloadJob(context,
                                              messageAndThreadId.first,
                                              messageAndThreadId.second,
                                              true));
  } else if (isNotification(pdu)) {
    Log.w(TAG, "*** Received blocked MMS, ignoring...");
  }
}
 
开发者ID:Agilitum,项目名称:TextSecureSMP,代码行数:33,代码来源:MmsReceiveJob.java


示例11: isRelevant

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
private boolean isRelevant(Context context, Intent intent) {
  if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.DONUT) {
    return false;
  }

  if (!ApplicationMigrationService.isDatabaseImported(context)) {
    return false;
  }

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT &&
      Telephony.Sms.Intents.WAP_PUSH_RECEIVED_ACTION.equals(intent.getAction()) &&
      Util.isDefaultSmsProvider(context))
  {
    return false;
  }

  if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT &&
      SilencePreferences.isInterceptAllMmsEnabled(context))
  {
    return true;
  }

  byte[] mmsData   = intent.getByteArrayExtra("data");
  PduParser parser = new PduParser(mmsData);
  GenericPdu pdu   = parser.parse();

  if (pdu == null || pdu.getMessageType() != PduHeaders.MESSAGE_TYPE_NOTIFICATION_IND) {
    Log.w(TAG, "Received Invalid notification PDU");
    return false;
  }

  NotificationInd notificationPdu = (NotificationInd)pdu;

  if (notificationPdu.getSubject() == null)
    return false;

  return WirePrefix.isEncryptedMmsSubject(notificationPdu.getSubject().getString());
}
 
开发者ID:SilenceIM,项目名称:Silence,代码行数:39,代码来源:MmsListener.java


示例12: onRun

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
@Override
public void onRun() {
  if (data == null) {
    Log.w(TAG, "Received NULL pdu, ignoring...");
    return;
  }

  PduParser  parser = new PduParser(data);
  GenericPdu pdu    = null;

  try {
    pdu = parser.parse();
  } catch (RuntimeException e) {
    Log.w(TAG, e);
  }

  if (isNotification(pdu) && !isBlocked(pdu)) {
    MmsDatabase      database           = DatabaseFactory.getMmsDatabase(context);
    Pair<Long, Long> messageAndThreadId = database.insertMessageInbox((NotificationInd)pdu, subscriptionId);
    MasterSecret     masterSecret       = KeyCachingService.getMasterSecret(context);

    Log.w(TAG, "Inserted received MMS notification...");

    database.markIncomingNotificationReceived(messageAndThreadId.second);

    if (!SilencePreferences.isMediaDownloadAllowed(context))
      MessageNotifier.updateNotification(context, masterSecret, messageAndThreadId.second);

    ApplicationContext.getInstance(context)
                      .getJobManager()
                      .add(new MmsDownloadJob(context,
                                              messageAndThreadId.first,
                                              messageAndThreadId.second,
                                              true));
  } else if (isNotification(pdu)) {
    Log.w(TAG, "*** Received blocked MMS, ignoring...");
  }
}
 
开发者ID:SilenceIM,项目名称:Silence,代码行数:39,代码来源:MmsReceiveJob.java


示例13: handleMmsNotification

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
private void handleMmsNotification(Intent intent) {
  byte[] mmsData   = intent.getByteArrayExtra("data");
  PduParser parser = new PduParser(mmsData);
  GenericPdu pdu   = parser.parse();

  if (pdu != null && pdu.getMessageType() == PduHeaders.MESSAGE_TYPE_NOTIFICATION_IND) {
    MmsDatabase database                = DatabaseFactory.getMmsDatabase(context);
    Pair<Long, Long> messageAndThreadId = database.insertMessageInbox((NotificationInd)pdu);

    Log.w("MmsReceiver", "Inserted received MMS notification...");
    scheduleDownload((NotificationInd)pdu, messageAndThreadId.first, messageAndThreadId.second);
  }
}
 
开发者ID:Securecom,项目名称:Securecom-Text,代码行数:14,代码来源:MmsReceiver.java


示例14: retrieveMms

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
public static RetrieveConf retrieveMms(Context context, String url, String apn,
                                       boolean usingMmsRadio, boolean proxyIfPossible)
    throws IOException, ApnUnavailableException
{
  MmsConnectionParameters connectionParameters = getMmsConnectionParameters(context, apn);
  byte[] pdu = null;

  for (MmsConnectionParameters.Apn param : connectionParameters.get()) {
    try {
      if (proxyIfPossible && param.hasProxy()) {
        if (checkRouteToHost(context, param.getProxy(), usingMmsRadio)) {
          pdu = makeRequest(url, param.getProxy(), param.getPort());
        }
      } else {
        if (checkRouteToHost(context, Uri.parse(url).getHost(), usingMmsRadio)) {
          pdu = makeRequest(url, null, -1);
        }
      }

      if (pdu != null) break;
    } catch (IOException ioe) {
      Log.w("MmsDownloadHelper", ioe);
    }
  }

  if (pdu == null) {
    throw new IOException("Connection manager could not obtain route to host.");
  }

  RetrieveConf retrieved = (RetrieveConf)new PduParser(pdu).parse();

  if (retrieved == null) {
    throw new IOException("Bad retrieved PDU");
  }

  return retrieved;
}
 
开发者ID:Securecom,项目名称:Securecom-Text,代码行数:38,代码来源:MmsDownloadHelper.java


示例15: sendMms

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
public static SendConf sendMms(Context context, byte[] mms, String apn,
                               boolean usingMmsRadio, boolean useProxyIfAvailable)
    throws IOException
{
  byte[] response = sendBytes(context, mms, apn, usingMmsRadio, useProxyIfAvailable);
  return (SendConf) new PduParser(response).parse();
}
 
开发者ID:Securecom,项目名称:Securecom-Text,代码行数:8,代码来源:MmsSendHelper.java


示例16: retrieve

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
@Override
@TargetApi(VERSION_CODES.LOLLIPOP)
public synchronized @Nullable RetrieveConf retrieve(@NonNull String contentLocation,
                                                    byte[] transactionId,
                                                    int subscriptionId) throws MmsException
{
  beginTransaction();

  try {
    MmsBodyProvider.Pointer pointer = MmsBodyProvider.makeTemporaryPointer(getContext());

    Log.w(TAG, "downloading multimedia from " + contentLocation + " to " + pointer.getUri());

    SmsManager smsManager;

    if (VERSION.SDK_INT >= 22 && subscriptionId != -1) {
      smsManager = SmsManager.getSmsManagerForSubscriptionId(subscriptionId);
    } else {
      smsManager = SmsManager.getDefault();
    }

    smsManager.downloadMultimediaMessage(getContext(),
                                         contentLocation,
                                         pointer.getUri(),
                                         null,
                                         getPendingIntent());

    waitForResult();

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    Util.copy(pointer.getInputStream(), baos);
    pointer.close();

    Log.w(TAG, baos.size() + "-byte response: " + Hex.dump(baos.toByteArray()));

    return (RetrieveConf) new PduParser(baos.toByteArray()).parse();
  } catch (IOException | TimeoutException e) {
    Log.w(TAG, e);
    throw new MmsException(e);
  } finally {
    endTransaction();
  }
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:44,代码来源:IncomingLollipopMmsConnection.java


示例17: send

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
private SendConf send(byte[] pduBytes, boolean useMmsRadio, boolean useProxyIfAvailable)  throws IOException {
  byte[] response = sendBytes(pduBytes, useMmsRadio, useProxyIfAvailable);
  return (SendConf) new PduParser(response).parse();
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:5,代码来源:OutgoingLegacyMmsConnection.java


示例18: send

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
public SendConf send(boolean useMmsRadio, boolean useProxyIfAvailable)  throws IOException {
  byte[] response = sendBytes(useMmsRadio, useProxyIfAvailable);
  return (SendConf) new PduParser(response).parse();
}
 
开发者ID:redcracker,项目名称:TextSecure,代码行数:5,代码来源:OutgoingMmsConnection.java


示例19: retrieve

import ws.com.google.android.mms.pdu.PduParser; //导入依赖的package包/类
@Override
@TargetApi(VERSION_CODES.LOLLIPOP)
public synchronized @Nullable RetrieveConf retrieve(@NonNull String contentLocation,
                                                    byte[] transactionId,
                                                    int subscriptionId) throws MmsException
{
  beginTransaction();

  try {
    MmsBodyProvider.Pointer pointer = MmsBodyProvider.makeTemporaryPointer(getContext());

    Log.w(TAG, "downloading multimedia from " + contentLocation + " to " + pointer.getUri());

    SmsManager smsManager;

    if (VERSION.SDK_INT >= 22 && subscriptionId != -1) {
      smsManager = SmsManager.getSmsManagerForSubscriptionId(subscriptionId);
    } else {
      smsManager = SmsManager.getDefault();
    }

    smsManager.downloadMultimediaMessage(getContext(),
                                         contentLocation,
                                         pointer.getUri(),
                                         null,
                                         getPendingIntent());

    waitForResult();

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    Util.copy(pointer.getInputStream(), baos);
    pointer.close();

    return (RetrieveConf) new PduParser(baos.toByteArray()).parse();
  } catch (IOException | TimeoutException e) {
    Log.w(TAG, e);
    throw new MmsException(e);
  } finally {
    endTransaction();
  }
}
 
开发者ID:SilenceIM,项目名称:Silence,代码行数:42,代码来源:IncomingLollipopMmsConnection.java



注:本文中的ws.com.google.android.mms.pdu.PduParser类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Internal类代码示例发布时间:2022-05-22
下一篇:
Java PreventedException类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap