Tôi đang cố gắng tải xuống nội dung hình ảnh MMS
qua url MMS, nhưng nó trả về bằng phản hồi máy chủ 403 (Bị cấm) với số không hợp lệ MSISDN
. Tôi đã dán mã của tôi dưới đây để tham khảo. Cảm ơn trước!mms tải xuống nội dung mm thông qua mms url
private static boolean downloadThroughGateway(Context context, String host,
String port, String urlMms) throws Exception {
URL url = new URL(urlMms);
// Set-up proxy
if (host != null && port != null && host.equals("") && !port.equals("")) {
Log.d(TAG, "[MMS Receiver] Setting up proxy (" + host + ":" + port
+ ")");
Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost", host);
systemProperties.setProperty("http.proxyPort", port);
systemProperties.setProperty("http.keepAlive", "false");
}
// Open connection
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// Disable cache
connection.setUseCaches(false);
// Set the timeouts
connection.setConnectTimeout(TIMEOUT);
connection.setReadTimeout(TIMEOUT);
// Connect to the MMSC
Log.d(TAG, "[MMS Receiver] Connecting to MMS Url " + urlMms);
connection.connect();
try {
Log.d(TAG,
"[MMS Receiver] Response code is "
+ connection.getResponseCode());
if (connection.getContentLength() >= 0) {
Log.d(TAG, "[MMS Receiver] Download MMS data (Size: "
+ connection.getContentLength() + ")");
byte[] responseArray = new byte[connection.getContentLength()];
DataInputStream i = new DataInputStream(
connection.getInputStream());
int b = 0;
int index = 0;
while ((b = i.read()) != -1) {
responseArray[index] = (byte) b;
index++;
}
i.close();
// Parse the response
MmsDecoder parser = new MmsDecoder(responseArray);
parser.parse();
byte[][] imageBytes = new byte[parser.getParts().size()][];
for (int j = 0; j < parser.getParts().size(); j++) {
imageBytes[j] = parser.getParts().get(j).getContent();
}
// Insert into db
// Uri msgUri = MmsHelper.insert(context, parser.getFrom(),
// parser.getSubject(), imageBytes);
// ContentValues updateValues = new ContentValues();
// updateValues.put("read", 0);
// context.getContentResolver().update(msgUri, updateValues,
// null,
// null);
// Close the connection
Log.d(TAG, "[MMS Receiver] Disconnecting ...");
connection.disconnect();
System.gc();
// Callback
// if (bi != null)
// bi.onReceiveMms(context, msgUri);
return true;
}
// Close the connection
Log.d(TAG, "[MMS Receiver] Disconnecting ...");
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
Điều gì về thông tin đăng nhập của người dùng? Bạn đã kiểm tra xem thông tin xác thực phù hợp có được đặt để truy cập dịch vụ dữ liệu hay không. Bạn đã thử sử dụng các công cụ (Network Protocol Analyzer) chẳng hạn như WireShark vv .. để giải mã yêu cầu gửi MMS (HTTP PDU) và phản hồi tương ứng từ MMSC từ xa. Không cung cấp bất kỳ chi tiết nào liên quan đến kết nối như URL MMSC từ xa, hãy đăng nhập vào các thông tin khó tạo lại và cung cấp bản sửa lỗi cho sự cố. – Sriram
cách chuyển thông tin đăng nhập và tôi cũng không có bất kỳ thông tin nào về thông tin đăng nhập cần được cung cấp? –
Trước tiên, hãy kiểm tra xem bạn có thể truy cập và khởi chạy google.com trên trình duyệt của bạn thành công hay không. Sau đó, bạn có thể điều hướng đến cài đặt MMS cụ thể bằng cách điều hướng đến (Trên android 2.0) Cài đặt-> Mạng di động -> Tên điểm truy cập -> Tên mạng của nhà cung cấp dịch vụ của bạn. Dưới đây bạn sẽ tìm thấy các tab như 1.) MMSC 2.) MMS proxy 3.) Cổng MMS 4.) Tên đăng nhập 5.) Mật khẩu. – Sriram