آموزش اضافه کردن برنامه یا گزینه به تنظیمات(بخش دوم)

استاندارد

در بخش اول آموزش به چگونگی قرار دادن یک برنامه در تنظیمات بعنوان یک گزینه پرداختیم

در این بخش قرار دادن گزینه در منو فرعی تنظیمات می پردازیم

در این آموزش ما در منوی فرعی  display settings برنامه On-screen-buttons را اضافه می کنیم

در اینجا ما به یک منبع اضافی نیاز داریم به نام android:key که کلید اصلی هر برنامه ای است

اگر android:key اصلی را نیافتید،مقدار android:key را در مرجع ids.xml می دهیم

برای شروع اول برنامه  On screen button را دیکامپایل کنید

دنبال منابع میریم در AndroidManifest.xml

همان طور که می بینید ما android:targetPackage=”cn.kyle.gn.NavBar را به آسانی پیدا کردیم

تنها یک خط با <activity شروع می شود پس پیدا کردن android:targetClass=”cn.kyle.gn.NavBar.GnNavBarAct ivity”. android:action=”com.android.intent.MAIN”به آسانی است

اکنون نیز به android:title داریم که می تواند هر چیزی باشد که در strings.xml می باشد

android:key می تواند هر چیزی باشد که در ids.xml مراجعش می دهیم

چیز دیگری که بعنوان ورودی نیاز داریم android:summary می باشد، که زیر هدر برنامه می باشد

نمونه ما به شکل زیر در می آید

android:title="navienable_title"
android:key="on_screen"
android:summary="on_screen_summary"

وقتی تمام منابع و مقدار انها را درست کردید اکنون ورودی را در res\xml in display_settings.xml وارد می کنیم

<PreferenceScreen android:title="@string/navienable_title" android:key="on_screen" android:summary="@string/on_screen_summary">
        <intent android:targetPackage="cn.kyle.gn.NavBar" android:action="android.intent.action.MAIN" android:targetClass="cn.kyle.gn.NavBar.GnNavBarActivity" />
    </PreferenceScreen>

در آخر display_settings باید مانند زیر باشد

فایل را ذخیره کنید

اکنون به res/values بروید و فایل strings.xml را باز کنید

در اینجا نیاز به وارد کردن دو ورودی داریم

یکی برای android:title=”@string/navienable_title”

و دیگری برای android:summary=”@string/on_screen_summary

مانند زیر دو ورودی را درست می کنیم

<string name="navienable_title">On-Screen-Buttons</string>
    <string name="on_screen_summary">Enable/Disable On-Screen-Buttons</string>

به جایی On-Screen-Buttons شما نام برنامه یا هر چیزی که می خواهید را وارد کنید

فایل strings.xml ما مانند زیر می باشد

فایل خود را ذخیره کنید

اکنون به مسیر res\values\ids.xml بروید و فایل را باز کنید

اینجا نیاز داریم تا یک ورودی در display_settings بعنوان android:key ایجاد کنیم

ورودی ما به شکل زیر می باشد

<item type="id" name="on_screen">false</item>

پس ids.xml ما به شکل زیر در می آید

فایل خود را ذخیره و کامپایل کنید

نمونه کار ما در آموزش نیز در عکس زیر می باشد

کار تمام شد

برای کاملتر شدن آموزش نکته زیر را نیز اضافه کنم

اگر بخواهید که برنامه ای که در تنظیمات قرار می دهید مخفی شود و در لانچر نمایان نشود

در فایل Androidmanifest.xml قسمت زیر را در نظر بگیرید

<activity android:label="@string/app_name" android:name=".GalleryActivity" android:taskAffinity="android.task.pictures" android:configChanges="keyboardHidden|orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />

و خط زیر را پاک کنید

<category android:name="android.intent.category.LAUNCHER" />

گاهی ممکن در برخی برنامه ها کد بالا همیشه جواب ندهد

از روش زیر استفاده کنید

<activity android:label="@string/app_name" android:name=".GalleryActivity" android:taskAffinity="android.task.pictures" android:configChanges="keyboardHidden|orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />

کد بالا را به شکل زیر دربیارید

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />

موفق باشید

همچنین اگر موقع کامپایل با اشکال مواجه شدید

در مسیر smali/com/android/settings یک فایل به نام Maddy.smali درست کنید و کدهای زیر را در آن قرار دهید

.class public Lcom/android/settings/Maddy;
.super Lcom/android/settings/SettingsPreferenceFragment;
.source "Maddy.java"

# direct methods
.method public constructor <init>()V
    .locals 0

    .prologue
    .line 17
    invoke-direct {p0}, Lcom/android/settings/SettingsPreferenceFragment;-><init>()V

    return-void
.end method

# virtual methods
.method public onCreate(Landroid/os/Bundle;)V
    .locals 1
    .param p1, "savedInstanceState"    # Landroid/os/Bundle;

    .prologue
    .line 21
    invoke-super {p0, p1}, Lcom/android/settings/SettingsPreferenceFragment;->onCreate(Landroid/os/Bundle;)V

    .line 23
    const v0, 0x7f050054

    invoke-virtual {p0, v0}, Lcom/android/settings/Maddy;->addPreferencesFromResource(I)V

    .line 24
    return-void
.end method

موفق باشید

در اندروید 5 بجای settings_headers.xml دنبال فایل dashboard_categories.xml باشید

هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد

5 نظر برای “آموزش اضافه کردن برنامه یا گزینه به تنظیمات(بخش دوم)

  1. super su

    سلام
    خییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییلی ممنووووووووووووووون
    مطلب های بسیار جالبی انتخاب میکنی
    یه سوال من ستینگ مارش مالو رو استخراج کردم (ستینگ هدر.xml)نداشت چرا ؟
    ایا کار من مشکل داره یا اسمش عوض شده؟

    • mohsen

      با سلام
      در تنظیمات جدید کمی اسم و جاها تغییر کرده همین الان به خود آموزش اضافه می کنم

  2. meysamkia

    سلام
    من برنامه سوپر یوسر رو به تنظیمات اضافه کردم بعد ایکون هم براش گذاشتم .تا اینجا همه چیزدرست پیشرفت و تنظیمات رو دیکامپایل وساین کردم .
    تنظیمات رو توی دستگاه قرار دادم اما وقتی تنظیمات رو باز می کنم و روی سوپر یوسر کلیک می کنم یه دفه از تنطیمات می پره بیرون و هیچ چیز اجرا نمیشه

    من تو پیدا کردن android:targetClass مشکل دارم لطفا راهنمایی کنید چه جوری پیدا کنم چون گزینه های شبیه به هم زیاد هست

    پیشنهاد
    لطفا یه آموزش بزارید که بتونیم دیتای موبایل یا جی پی اس رو مثل روشن و خاموش کردن وای فای یا بلوتوث در صفحه اول تنظیمات بزاریم.
    اموزش اضافه کردن عکس (ثابت یا متحرک )به قسمت درباره تلفن رو هم بزارید

    ممنون از شما آقا محسن

    • mohsen

      سلام دوست عزیز
      در تنظیمات گوشیها و برنامه ها کلا مختلف هستن بعد از مرور زمان و انجام کار خودتون با گشت و گذار خیلی راحتر می تونید این کار رو انجام بدید
      فقط باید بگردید و تست کنید انگیزه رو هم که دارید
      برای برنامه که فرمودید بهترین کار اینه که خودتون یک فایل ستینگ که این برنامه در اون قرار داره و چک کنید کمی متفاوتر هست بخاطر دادن دستری روت و باینریهاش این برنامه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *