چرا کتابخانه والی روی اندروید ۹ کار نمی کند؟ ارائه یک راه حل ساده رفع این مشکل
از Android 9 ترافیک متن روشن (clear text traffic) ممنوع شده است و باید به صورت دستی کدهایی را برای آشکار شدن آن اضافه کنید.
حل مشکل کار نکردن کتابخانه والی روی اندروید ۹
ابتدا روی فولدر res راست کلیک کرده و یک دایرکتوری جدید از نوع xml و با نام xml مطابق شکل های زیر اضافه میکنیم :
سپس روی فولدر xml که ساخته ایم ، راست کلیک کرده و یک فایل جدید با نام network_security_config مطابق شکل های زیر اضافه میکنیم :
فایل network_security_config را به صورت زیر کد نویسی میکنیم :
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> </network-security-config>
در آخر فایل منیفست را باز کرده و خط زیر را به تگ application اضافه میکنیم :
android:networkSecurityConfig="@xml/network_security_config"
اندروید ۹ (سطح API 28) تغییرات زیادی را در سیستم اندروید ارائه می دهد. رفتارهای زیر منحصراً برای برنامه هایی اعمال می شود که سطح API 28 یا بالاتر را هدف قرار می دهند. برنامه هایی که targetSdkVersion را بر روی سطح API 28 یا بالاتر تنظیم می کنند ، در صورت کاربرد برنامه ، باید به درستی مورد استفاده قرار گیرند.
خدمات پیش زمینه :
برنامه هایی که اندروید ۹ یا بالاتر را هدف قرار می دهند و از خدمات پیش زمینه استفاده می کنند ، باید اجازه FOREGROUND_SERVICE را درخواست کنند. این یک مجوز معمولی است ، بنابراین سیستم به طور خودکار آن را به برنامه درخواست کننده اعطا می کند.
اگر برنامه ای که Android 9 یا بالاتر را هدف قرار می دهد بدون ایجاد درخواست FOREGROUND_SERVICE اقدام به ایجاد یک سرویس پیش زمینه کند ، سیستم SecurityException را پرتاب می کند.