جستجو یکی از ویژگیهای اصلی کاربر در اندروید است. کاربران باید بتوانند هر دادهای را که در دسترسشان است، جستجو کنند، چه محتوا در دستگاه باشد و چه در اینترنت. برای کمک به ایجاد یک تجربه جستجوی منسجم برای کاربران، اندروید یک چارچوب جستجو ارائه میدهد که به شما در پیادهسازی جستجو برای برنامهتان کمک میکند.

شکل ۱. یک پنجرهی جستجو با پیشنهادهای جستجوی سفارشی.
چارچوب جستجو دو حالت ورودی جستجو ارائه میدهد: یک کادر محاورهای جستجو در بالای صفحه یا یک ویجت جستجو ( SearchView ) که میتوانید در طرحبندی فعالیت خود جاسازی کنید. در هر صورت، سیستم اندروید با ارائه درخواستهای جستجو به یک فعالیت خاص که جستجوها را انجام میدهد، به پیادهسازی جستجوی شما کمک میکند. همچنین میتوانید کادر محاورهای یا ویجت جستجو را فعال کنید تا همزمان با تایپ کاربر، پیشنهادات جستجو را ارائه دهد. شکل 1 نمونهای از کادر محاورهای جستجو را با پیشنهادات جستجوی اختیاری نشان میدهد.
پس از تنظیم کادر محاورهای جستجو یا ویجت جستجو، میتوانید موارد زیر را انجام دهید:
- جستجوی صوتی را فعال کنید.
- ارائه پیشنهادات جستجو بر اساس آخرین جستجوهای کاربران.
- پیشنهادهای جستجوی سفارشی ارائه دهید که با نتایج واقعی در دادههای برنامه شما مطابقت داشته باشند.
- پیشنهادات جستجوی برنامه خود را در کادر جستجوی سریع در کل سیستم ارائه دهید.
توجه : چارچوب جستجو، APIهایی برای جستجوی دادههای شما ارائه نمیدهد . برای انجام جستجو، باید از APIهای مناسب برای دادههای خود استفاده کنید. برای مثال، اگر دادههای شما در یک پایگاه داده SQLite ذخیره شدهاند، از APIهای android.database.sqlite برای انجام جستجوها استفاده کنید.
همچنین، هیچ تضمینی وجود ندارد که یک دستگاه، دکمهی جستجوی اختصاصی برای فراخوانی رابط جستجو در برنامهی شما ارائه دهد. هنگام استفاده از کادر محاورهای جستجو یا یک رابط سفارشی، باید یک دکمهی جستجو در رابط کاربری خود ارائه دهید که رابط جستجو را فعال کند. برای اطلاعات بیشتر، به بخش «فراخوانی کادر محاورهای جستجو» مراجعه کنید.
صفحات زیر نحوه استفاده از چارچوب اندروید برای پیادهسازی جستجو را به شما نشان میدهند:
- ایجاد رابط جستجو
- چگونه برنامه خود را برای استفاده از کادر محاورهای جستجو یا ویجت جستجو تنظیم کنید.
- پیشنهادات پرس و جوهای اخیر را اضافه کنید
- نحوه ارائه پیشنهادات بر اساس سوالاتی که قبلاً استفاده شدهاند.
- افزودن پیشنهادهای سفارشی
- نحوه ارائه پیشنهادات بر اساس دادههای سفارشی از برنامه شما و ارائه آنها در کادر جستجوی سریع در کل سیستم.
- پیکربندی قابل جستجو
- یک سند مرجع برای فایل پیکربندی قابل جستجو. سایر اسناد نیز فایل پیکربندی را از نظر رفتارهای خاص مورد بحث قرار میدهند.
حفظ حریم خصوصی کاربر
هنگام پیادهسازی جستجو در برنامه خود، اقداماتی را برای محافظت از حریم خصوصی کاربر انجام دهید. بسیاری از کاربران فعالیتهای خود در تلفن همراه - از جمله جستجوها - را اطلاعات خصوصی میدانند. برای محافظت از حریم خصوصی کاربران، اصول زیر را رعایت کنید:
- اطلاعات شخصی را به سرورها ارسال نکنید - و اگر مجبور به این کار هستید، آن را ثبت نکنید.
اطلاعات شخصی هر اطلاعاتی است که میتواند کاربران شما را شخصاً شناسایی کند، مانند نام، آدرس ایمیل، اطلاعات صورتحساب یا سایر دادههایی که میتوانند به طور منطقی به چنین اطلاعاتی مرتبط باشند. اگر برنامه شما جستجو را با کمک یک سرور پیادهسازی میکند، از ارسال اطلاعات شخصی به همراه عبارات جستجو خودداری کنید. به عنوان مثال، اگر به دنبال مشاغل نزدیک یک کد پستی هستید، نیازی به ارسال شناسه کاربری نیز ندارید؛ فقط کد پستی را به سرور ارسال کنید. اگر مجبور به ارسال اطلاعات شخصی هستید، از ثبت آن خودداری کنید. اگر مجبور به ثبت آن هستید، از آن دادهها با دقت محافظت کنید و در اسرع وقت آن را پاک کنید.
- به کاربران روشی برای پاک کردن تاریخچه جستجوی خود ارائه دهید.
چارچوب جستجو به برنامه شما کمک میکند تا در حین تایپ کاربر، پیشنهادهای متناسب با زمینه را ارائه دهد. گاهی اوقات این پیشنهادها بر اساس جستجوهای قبلی یا سایر اقدامات انجام شده توسط کاربر در یک جلسه قبلی است. ممکن است کاربر نخواهد جستجوهای قبلی برای سایر کاربران دستگاه آشکار شود. اگر برنامه شما پیشنهادهایی ارائه میدهد که میتوانند فعالیتهای جستجوی قبلی را نشان دهند، روشی را برای کاربر پیادهسازی کنید تا سابقه جستجوی خود را پاک کند. اگر از
SearchRecentSuggestionsاستفاده میکنید، میتوانید متدclearHistory()را فراخوانی کنید. اگر در حال پیادهسازی پیشنهادهای سفارشی هستید، باید یک متد مشابه "پاک کردن سابقه" را در ارائهدهنده محتوای خود ارائه دهید که کاربر بتواند آن را اجرا کند.
