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
Schicken dringende bitte siehe meine Antwort hier stackoverflow.com/a/20611335/2422453
Schreien keine Antwort, nicht eine Antwort bekommen :/
InformationsquelleAutor Maha | 2012-03-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
warum nutzen Sie nicht die android-system-Funktionen:
Bitte haben Sie einen Blick auf
https://developer.android.com/guide/components/intents-common.html
Cheers
Tom
InformationsquelleAutor TomTom
Fand ich einen link in einem anderen thread zu einem github-Projekt, dass zu 100% klappt https://github.com/klinker41/android-smsmms
Beachten Sie, dass die obligatorische Einstellungen sind nur
können Sie Sie bekommen so etwas wie (gefunden bei Set APN programmgesteuert auf Android - answear von vincent091):
InformationsquelleAutor Fabian