Android 让Search不到相应的Activity

Issue:

Actual Results: Flashlight option is listing under settings search and is not opening.

Expected Results: options not present in settings app should not be listed for search results.

Reproduction Steps:

  1. Launch settings application.
  2. Search for Flashlight.
  3. Tap on the result displayed(No action performed).

Reproducibility:100%

Commit:
"
Description: Flashlight option is listing under settings search and is not opening.
Solution: Hide the flashlight in setting's search.
"
就是有些功能未能实现,但是Settings 搜索的时候还是能检索到,点击的时候又没作用。



解决方案如下:
找到这个Activity对应的code:


code:
pacakages/apps/src/com/android/settings/flashlight/FlashlightHandleActivity.java
 

 public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {

                @Override
                public List<SearchIndexableRaw> getRawDataToIndex(Context context,
                        boolean enabled) {

                    final List<SearchIndexableRaw> result = new ArrayList<>();

                    SearchIndexableRaw data = new SearchIndexableRaw(context);
                    //BSPA-232771 Hide the flashlight in setting's search.
                    if (!ZebraUtils.isZebra().orElse(false)){
                        data.title = context.getString(R.string.power_flashlight);
                        data.screenTitle = context.getString(R.string.power_flashlight);
                        data.keywords = context.getString(R.string.keywords_flashlight);
                    }
                    data.intentTargetPackage = context.getPackageName();
                    data.intentTargetClass = FlashlightHandleActivity.class.getName();
                    data.intentAction = Intent.ACTION_MAIN;
                    data.key = DATA_KEY;
                    result.add(data);

                    return result;
                }

                @Override
                public List<String> getNonIndexableKeys(Context context) {
                    List<String> keys = super.getNonIndexableKeys(context);
                    if (!FlashlightSlice.isFlashlightAvailable(context)) {
                        Log.i(TAG, "Flashlight is unavailable");
                        keys.add(DATA_KEY);
                    }
                    return keys;
                }
            };

相关推荐

  1. AndroidActivity 恢复

    2024-01-27 12:54:02       52 阅读
  2. Android app发送日志Elastic Search

    2024-01-27 12:54:02       50 阅读
  3. 通过conda search cuda找想要信息,更换channel

    2024-01-27 12:54:02       41 阅读
  4. Android Intent 传递实体类下一个 Activity

    2024-01-27 12:54:02       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 12:54:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 12:54:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 12:54:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 12:54:02       18 阅读

热门阅读

  1. MySQL十部曲之三:字符集和排序规则

    2024-01-27 12:54:02       29 阅读
  2. apache 前30个开源项目

    2024-01-27 12:54:02       38 阅读
  3. Jenkins CLI 任意文件读取漏洞复现(CVE-2024-23897)

    2024-01-27 12:54:02       34 阅读
  4. 283.移动零(力扣LeetCode)

    2024-01-27 12:54:02       34 阅读
  5. 架构设计面试系列-01

    2024-01-27 12:54:02       37 阅读
  6. STL标准库(三)之forward_list

    2024-01-27 12:54:02       28 阅读
  7. PostgreSQL(十一)coalesce() 函数的用法

    2024-01-27 12:54:02       30 阅读