Senden MMS von Meiner Anwendung in android

Will ich senden MMS von meiner Anwendung auf eine bestimmte Anzahl. Ich habe gesucht und fand diesen code, aber ich habe keine Ahnung, ob dieser code, was ich brauche oder nicht.
Meine Fragen :

-kann jemand erklären, diesen code zu mir.ich bin Anfänger in MMS.

-auch ich dachte, dieser code wird lassen die Benutzer senden MMS von meiner Anwendung ohne verschieben Sie es an die native Messaging-Posteingang (und dies ist, was ich will), Bin ich Recht?

-auch ich habe ein problem ,ich weiß nicht, wie kann ich diesen code in mein Projekt.

dies ist, was ich gefunden

MMS ist nur eine http-post-Anfrage. Sollten Sie die Anfrage über zusätzliche Netzwerk-feature :

final ConnectivityManager connMgr =  (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
final int result = connMgr.startUsingNetworkFeature( ConnectivityManager.TYPE_MOBILE, Phone.FEATURE_ENABLE_MMS);

Wenn Sie erhalten Sie das Ergebnis mit Phone.APN_REQUEST_STARTED Wert, müssen Sie warten, für den ordnungsgemäßen Zustand. Registrieren BroadCastReciver und warten Sie, bis Phone.APN_ALREADY_ACTIVE erscheint:

final IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
context.registerReceiver(reciver, filter);

Hintergrund, wenn die Verbindung fertig ist, dann bauen die Inhalte und durchführen Anfrage. Wenn Sie möchten, dass die Verwendung des android-internen code, verwenden Sie bitte diese:

final SendReq sendRequest = new SendReq();
final EncodedStringValue[] sub = EncodedStringValue.extract(subject);
if (sub != null && sub.length > 0) {
   sendRequest.setSubject(sub[0]);
}
final EncodedStringValue[] phoneNumbers = EncodedStringValue.extract(recipient);
if (phoneNumbers != null && phoneNumbers.length > 0) {
   sendRequest.addTo(phoneNumbers[0]);
}

final PduBody pduBody = new PduBody();

if (parts != null) {
   for (MMSPart part : parts) {
      final PduPart partPdu = new PduPart();
      partPdu.setName(part.Name.getBytes());
      partPdu.setContentType(part.MimeType.getBytes());
      partPdu.setData(part.Data);
      pduBody.addPart(partPdu);
   }
}

sendRequest.setBody(pduBody);

final PduComposer composer = new PduComposer(this.context, sendRequest);
final byte[] bytesToSend = composer.make();

HttpUtils.httpConnection(context, 4444L, MMSCenterUrl, bytesToSendFromPDU, HttpUtils.HTTP_POST_METHOD, !TextUtils.isEmpty(MMSProxy), MMSProxy, port);
  • MMSCenterUrl: url, die von der MMS-APNs,
  • MMSProxy: proxy MMS-APNs,
  • port: port, die von der MMS-APNs

Beachten Sie, dass einige Klassen von internen Paketen. Download aus dem android git erforderlich ist.
Die Anfrage sollte getan werden, mit der url vom Benutzer apn-Raum-code:

public class APNHelper {

   public class APN {
      public String MMSCenterUrl = "";
      public String MMSPort = "";
      public String MMSProxy = ""; 
   }

   public APNHelper(final Context context) {
      this.context = context;
   }   

   public List<APN> getMMSApns() {     
      final Cursor apnCursor = this.context.getContentResolver().query(Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"), null, null, null, null);
      if ( apnCursor == null ) {
         return Collections.EMPTY_LIST;
      } else {
         final List<APN> results = new ArrayList<APN>();         
         while ( apnCursor.moveToNext() ) {
            final String type = apnCursor.getString(apnCursor.getColumnIndex(Telephony.Carriers.TYPE));
            if ( !TextUtils.isEmpty(type) && ( type.equalsIgnoreCase(Phone.APN_TYPE_ALL) || type.equalsIgnoreCase(Phone.APN_TYPE_MMS) ) ) {
               final String mmsc = apnCursor.getString(apnCursor.getColumnIndex(Telephony.Carriers.MMSC));
               final String mmsProxy = apnCursor.getString(apnCursor.getColumnIndex(Telephony.Carriers.MMSPROXY));
               final String port = apnCursor.getString(apnCursor.getColumnIndex(Telephony.Carriers.MMSPORT));                  
               final APN apn = new APN();
               apn.MMSCenterUrl = mmsc;
               apn.MMSProxy = mmsProxy;
               apn.MMSPort = port;
               results.add(apn);
            }
         }                   
         apnCursor.close();
         return results;
      }

Bitte helfen Sie mir

Ich mache etwas ähnliches HIER!!! stackoverflow.com/questions/14452808/...
Schicken dringende bitte siehe meine Antwort hier stackoverflow.com/a/20611335/2422453
Schreien keine Antwort, nicht eine Antwort bekommen :/

InformationsquelleAutor Maha | 2012-03-29

Schreibe einen Kommentar