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

در این بخش قرار دادن گزینه در منو فرعی تنظیمات می پردازیم
[/vc_column_text][vc_btn title=”آموزش اضافه کردن برنامه یا گزینه به تنظیمات(بخش اول)” style=”gradient” link=”url:http%3A%2F%2Fwww.gsm-developers.com%2Fhow-to-add-any-appoption-in-settings-apk%2F||target:%20_blank|rel:nofollow”][vc_column_text]در این آموزش ما در منوی فرعی 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 باید مانند زیر باشد
فایل را ذخیره کنید
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]اکنون به 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 ما مانند زیر می باشد
فایل خود را ذخیره کنید
[/vc_column_text][vc_column_text]اکنون به مسیر res\values\ids.xml بروید و فایل را باز کنید
اینجا نیاز داریم تا یک ورودی در display_settings بعنوان android:key ایجاد کنیم
ورودی ما به شکل زیر می باشد
<item type="id" name="on_screen">false</item>
پس ids.xml ما به شکل زیر در می آید
فایل خود را ذخیره و کامپایل کنید
نمونه کار ما در آموزش نیز در عکس زیر می باشد
کار تمام شد
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]برای کاملتر شدن آموزش نکته زیر را نیز اضافه کنماگر بخواهید که برنامه ای که در تنظیمات قرار می دهید مخفی شود و در لانچر نمایان نشود
در فایل 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" />
موفق باشید[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]همچنین اگر موقع کامپایل با اشکال مواجه شدید
در مسیر 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
موفق باشید[/vc_column_text][vc_column_text]در اندروید 5 بجای settings_headers.xml دنبال فایل dashboard_categories.xml باشید
[/vc_column_text][vc_btn title=”لینک آموزش در انجمن برای بحث و تبادل نظر” color=”green” link=”url:http%3A%2F%2Fforum.gsm-developers.com%2Ftopic%2F11756-%25D8%25A2%25D9%2585%25D9%2588%25D8%25B2%25D8%25B4-%25D8%25A7%25D8%25B6%25D8%25A7%25D9%2581%25D9%2587-%25DA%25A9%25D8%25B1%25D8%25AF%25D9%2586-%25D8%25A8%25D8%25B1%25D9%2586%25D8%25A7%25D9%2585%25D9%2587-%25DB%258C%25D8%25A7-%25DA%25AF%25D8%25B2%25DB%258C%25D9%2586%25D9%2587-%25D8%25A8%25D9%2587-%25D8%25AA%25D9%2586%25D8%25B8%25DB%258C%25D9%2585%25D8%25A7%25D8%25AA%25D8%25A8%25D8%25AE%25D8%25B4-%25D8%25AF%25D9%2588%25D9%2585%2F||target:%20_blank|rel:nofollow”][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][/vc_column][/vc_row]









