ویژگی‌های جستجوی Android را در برنامه‌تان ادغام کنید

امتحان کردن روش Compose
Jetpack Compose جعبه‌ابزار واسط کاربر توصیه‌شده برای Android است. با نحوه افزودن عملکرد جستجو در Compose آشنا شوید.

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

شکل ۱. کادر گفتگوی جستجو با پیشنهادهای جستجوی سفارشی.

چارچوب جستجو دو حالت برای ورودی جستجو ارائه می‌دهد: یک کادر گفتگوی جستجو در بالای صفحه یا یک ابزاره جستجو (SearchView) که می‌توانید آن را در چیدمان فعالیت خود جاسازی کنید. در هر دو مورد، سیستم Android با ارائه پرسمان‌های جستجو به فعالیت خاصی که جستجوها را انجام می‌دهد، به اجرای جستجوی شما کمک می‌کند. همچنین می‌توانید کادر گفتگوی جستجو یا ابزاره را فعال کنید تا هم‌زمان با تایپ کردن کاربر، پیشنهادهای جستجو ارائه دهد. شکل ۱ نمونه‌ای از کادر گفتگوی جستجو را با پیشنهادهای جستجوی اختیاری نشان می‌دهد.

پس‌از راه‌اندازی کادر گفتگوی جستجو یا ابزاره جستجو، می‌توانید کارهای زیر را انجام دهید:

  • جستجوی گفتاری را فعال کنید.
  • پیشنهادهای جستجو را براساس پُرسمان‌های اخیر کاربر ارائه دهید.
  • پیشنهادهای جستجوی سفارشی ارائه دهید که با نتایج واقعی در داده‌های برنامه‌تان مطابقت داشته باشد.
  • پیشنهادهای جستجوی برنامه‌تان را در «چارگوش جستجوی سریع» در سراسر سیستم ارائه دهید.

توجه: چارچوب جستجو میاناهای برنامه‌سازی کاربردی را برای جستجوی داده‌هایتان ارائه نمی‌دهد. برای انجام جستجو، باید از میاناهای برنامه‌سازی کاربردی مناسب برای داده‌هایتان استفاده کنید. برای مثال، اگر داده‌هایتان در پایگاه داده SQLite ذخیره شده است، از android.database.sqlite میاناهای برنامه‌سازی کاربردی برای انجام جستجو استفاده کنید.

همچنین، هیچ تضمینی وجود ندارد که دستگاه دکمه «جستجو» اختصاصی‌ای ارائه دهد که واسط جستجو را در برنامه شما فراخوانی کند. هنگام استفاده از کادر گفتگوی جستجو یا واسط سفارشی، باید دکمه جستجویی در واسط کاربر خود ارائه دهید که واسط جستجو را فعال کند. برای اطلاعات بیشتر، فراخوانی کادر گفتگوی جستجو را ببینید.

صفحه‌های زیر نحوه استفاده از چارچوب Android را برای پیاده‌سازی جستجو نشان می‌دهند:

ایجاد واسط جستجو
نحوه راه‌اندازی برنامه برای استفاده از کادر گفتگوی جستجو یا ابزاره جستجو.
افزودن پیشنهادهای پُرسمان اخیر
نحوه ارائه پیشنهاد براساس پُرسمان‌هایی که قبلاً استفاده شده است.
افزودن پیشنهادهای سفارشی
نحوه ارائه پیشنهاد براساس داده‌های سفارشی از برنامه شما و ارائه آن‌ها در «چارگوش جستجوی سریع» در سراسر سیستم.
پیکربندی قابل‌جستجو
سند مرجع برای فایل پیکربندی قابل‌جستجو. اسناد دیگر نیز فایل پیکربندی را ازنظر رفتارهای خاص مورد بحث قرار می‌دهند.

محافظت از حریم خصوصی کاربر

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

  • اطلاعات شخصی را به سرورها ارسال نکنید‐و اگر مجبورید، آن را ثبت نکنید.

    اطلاعات شخصی هرگونه اطلاعاتی است که می‌تواند هویت کاربران شما را شناسایی کند، مانند نام، نشانی ایمیل، اطلاعات صورت‌حساب، یا داده‌های دیگری که به‌طور منطقی می‌تواند به چنین اطلاعاتی مرتبط شود. اگر برنامه شما جستجو را با کمک سرور اجرا می‌کند، از ارسال اطلاعات شخصی همراه با پُرسمان‌های جستجو خودداری کنید. برای مثال، اگر درحال جستجوی کسب‌وکارهای نزدیک یک کد پستی هستید، نیازی نیست شناسه کاربر را هم ارسال کنید؛ فقط کد پستی را به سرور ارسال کنید. اگر باید اطلاعات شخصی ارسال کنید، از ثبت آن خودداری کنید. اگر باید آن را ثبت کنید، از آن داده‌ها به‌دقت محافظت کنید و در اسرع وقت آن‌ها را پاک کنید.

  • روشی برای پاک کردن سابقه جستجو به کاربران ارائه دهید.

    چارچوب جستجو به برنامه شما کمک می‌کند تا پیشنهادهای خاص بافت را درحین تایپ کردن کاربر ارائه دهد. گاهی اوقات این پیشنهادها براساس جستجوهای قبلی یا کنش‌های دیگری است که کاربر در جلسه قبلی انجام داده است. ممکن است کاربر نخواهد جستجوهای قبلی برای دیگر کاربران دستگاه آشکار شود. اگر برنامه شما پیشنهادهایی ارائه می‌دهد که می‌تواند فعالیت‌های جستجوی قبلی را آشکار کند، روشی را برای کاربر پیاده‌سازی کنید تا بتواند سابقه جستجوی خود را پاک کند. اگر از SearchRecentSuggestions استفاده می‌کنید، می‌توانید روش clearHistory() را فراخوانی کنید. اگر پیشنهادهای سفارشی را پیاده‌سازی می‌کنید، باید روش مشابهی برای «پاک کردن سابقه» در ارائه‌دهنده محتوایتان ارائه دهید که کاربر بتواند آن را اجرا کند.