Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách lấy MMS User Agent mặc định trên Android

Lấy MMS User Agent trong Android

Hướng dẫn lấy chuỗi User Agent dùng cho MMS (Multimedia Messaging Service) qua TelephonyManager.getMmsUserAgent(). Yêu cầu API 28+ (Android 9 Pie).

Bước 1: Tạo dự án mới

Android Studio → File → New Project (minSdkVersion 28+).

Bước 2: Giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/text"
        android:textSize="30sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

Bước 3: Code logic (java/MainActivity.java)

package com.example.myapplication;

import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private static final int PERMISSION_REQUEST_CODE = 100;
    TextView textView;
    TelephonyManager telephonyManager;

    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.text);
        telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

        if (!hasPhonePermissions()) {
            requestPhonePermissions();
        } else {
            showMmsUserAgent();
        }
    }

    private boolean hasPhonePermissions() {
        return ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED;
    }

    private void requestPhonePermissions() {
        ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.READ_PHONE_STATE},
                PERMISSION_REQUEST_CODE);
    }

    @RequiresApi(api = Build.VERSION_CODES.P)
    private void showMmsUserAgent() {
        String ua = telephonyManager.getMmsUserAgent();
        textView.setText("MMS User Agent: " + (ua != null ? ua : "null"));
    }

    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (hasPhonePermissions()) {
                showMmsUserAgent();
            } else {
                textView.setText("Cần cấp quyền READ_PHONE_STATE");
            }
        }
    }
}

Bước 4: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

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

    <application ...>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Về MMS User Agent

  • Chuỗi định danh client MMS gửi đến MMSC (MMS Center).
  • Format thường: Android-MMS/1.0 (Linux; Android 10; Device Model).
  • Dùng bởi ứng dụng nhắn tin hệ thống khi gửi/nhận MMS.
  • Hiếm khi cần thiết cho ứng dụng thông thường.

Chạy ứng dụng

Yêu cầu Android 9.0+. TextView hiển thị MMS User Agent string.

Cách lấy MMS User Agent mặc định trên Android