واجهة برمجة تطبيقات بيانات تشخيص إمكانية الاتصال

تسمح واجهة برمجة تطبيقات بيانات تشخيص مشاكل الاتصال بالتطبيقات التي تمتلك الشبكات أو تديرها، مثل مثل تطبيقات مشغّل شبكة الجوّال وتطبيقات شبكة VPN وتطبيقات اقتراحات Wi-Fi لتلقّي بيانات التشخيص معلومات اتصال الشبكة من إطار العمل. يمكن لهذه التطبيقات التسجيل معاودة الاتصال وتلقي إشعارات مع معلومات الاتصال التي يملكونها أو يديرونها. لن تتلقّى التطبيقات إشعارات للشبكات. التي لا يملكها أو يديرها التطبيق.

في ما يلي أمثلة على التطبيقات التي تدير الشبكات أو تملكها:

  • تطبيقات مشغّل شبكة الجوّال: يمكنك إدارة شبكات الجوّال التي يتم استخدام subId لها. لديه امتيازات مشغّل شبكة الجوّال لـ
  • تطبيقات اقتراحات Wi-Fi: تمتلك شبكات Wi-Fi التي تقترحها على النظامية
  • تطبيقات شبكة VPN: يمكنك إدارة جميع الشبكات التي تستخدمها شبكة VPN، ولكن فقط عندما أنهم شبكة افتراضية خاصة نشطة

يتم استدعاء عمليات معاودة الاتصال في الحالات التالية:

  • التحقُّق من الشبكة: انتهى النظام من تقييم شبكة معيَّنة. تشير رسالة الأشكال البيانية ConnectivityReport الفئة معلومات حول الحالة الحالية للشبكة نتائج أي اختبارات أو إجراءات يتم إجراؤها كجزء من عملية التحقق.

    public class ConnectivityReport {
        Network network;
        long reportTimestamp;
        LinkProperties linkProperties;
        NetworkCapabilities networkCapabilities;
        PersistableBundle additionalInfo;
    }
    
  • وجود عطل بيانات مشتبه به: عطل للبيانات، وهو عبارة عن عطل يتم فيه نقل حزم IP لا تتدفق بشكل صحيح عبر الشبكة، يُشتبه. تشير رسالة الأشكال البيانية DataStallReport معلومات حول أكشاك البيانات المشتبه بها.

    public class DataStallReport {
        Network network;
        long reportTimestamp;
        int detectionMethod;
        LinkProperties linkProperties;
        NetworkCapabilities networkCapabilities;
        PersistableBundle stallDetails;
    }
    
  • تم الإبلاغ عن إمكانية الاتصال: أبلغ تطبيق عن الاتصال من خلال ConnectivityManager#reportNetworkConnectivity إلى النظام. الشبكة والاتصال المبلغ عنه (ما إذا كان التطبيق تعتقد أن الشبكة توفر أو لا توفر الاتصال).

التنفيذ

لاستخدام واجهة برمجة تطبيقات بيانات تشخيص مشاكل الاتصال، يجب أن يحصل التطبيق على ConnectivityDiagnosticsManager مثال من المنصة. يجب استخدام هذا المثيل لتسجيل إلغاء التسجيل ConnectivityDiagnosticsCallback وعمليات التنفيذ. طرق معاودة الاتصال التي لم يتم تجاوزها هي عمليات حظر.

فيما يلي مثال على ConnectivityDiagnosticsCallback التنفيذ:

public class ExampleCallback extends ConnectivityDiagnosticsCallback {
    @Override
    public void onConnectivityReportAvailable(@NonNull ConnectivityReport report) {
        ... 
        // Log data, take action based on report result, etc
        ... 
    }

    @Override
    public void onDataStallSuspected(@NonNull DataStallReport report) {
        ... 
        // Log data, take action based on report result, etc
        ... 
    }

    @Override
    public void onNetworkConnectivityReported(
               @NonNull Network network, boolean hasConnectivity) {
        ... 
        // Log data, take action based on report result, etc
        ... 
    }
}

لتسجيل عمليات معاودة الاتصال وتلقّي الإشعارات، يُرجى الاتصال registerConnectivityDiagnosticsCallback لإلغاء تسجيل عمليات معاودة الاتصال وإيقاف تلقّي الإشعارات، يُرجى الاتصال unregisterConnectivityDiagnosticsCallback

فيما يلي مثال للتسجيل وإلغاء التسجيل ConnectivityDiagnosticsCallback:

NetworkRequest request =
        new NetworkRequest.Builder()
                .addTransportType(TRANSPORT_CELLULAR)
                .build();
// Use an Executor that is appropriate for your use case
Executor executor = Executors.newSingleThreadExecutor();

ConnectivityDiagnosticsManager cdm =
        context.getSystemService(ConnectivityDiagnosticsManager.class);

ExampleCallback callback = new ExampleCallback();
cdm.registerConnectivityDiagnosticsCallback(
        request, executor, callback);

... 
// Collect connectivity information on networks that match with request
... 

cdm.unregisterConnectivityDiagnosticsCallback(callback);

التحقُّق

يتم اختبار CTS من خلال واجهة برمجة تطبيقات بيانات تشخيص مشاكل الاتصال ConnectivityDiagnosticsManagerTest