Hz495599 2020-03-19 02:10 采纳率: 0%
浏览 376

求助!android 百度地图sug检索没有返回结果,怎么解决?

根据百度地图sdk官方文档使用sug检索,没有返回结果。suggestionResult.error打印出来是RESULT_NOT_FOUND。
下面给出代码。求求大佬解答

权限获取

<!-- 这个权限用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <!-- 这个权限用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <!-- 访问网络,网络定位需要上网-->
    <uses-permission android:name="android.permission.INTERNET"/>

Activity代码

    private SuggestionSearch suggestionSearch;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SDKInitializer.initialize(this.getApplication());
        setContentView(R.layout.activity_location);
        init();
        initLocationData();
    }

    private void init(){
        backButton = findViewById(R.id.back_button_L);
        locationAddressTV = findViewById(R.id.location_address);
        locationCityTV = findViewById(R.id.location_city);
        searchAddressET = findViewById(R.id.search_address_ET);
        recyclerView = findViewById(R.id.suggestion_address_recycler_view);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(linearLayoutManager);
        suggestionAddressAdapter = new SuggestionAddressAdapter(list);
        recyclerView.setAdapter(suggestionAddressAdapter);

        backButton.setOnClickListener(this);
        locationCityTV.setOnClickListener(this);
        locationAddressTV.setOnClickListener(this);

        searchAddressET.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                String city = locationCityTV.getText().toString();
                if (s.length()<=0){
                    return;
                }
                if (!city.equals("")){
                    Toast.makeText(getApplicationContext(), s,Toast.LENGTH_SHORT).show();
                    suggestionSearch.requestSuggestion(new SuggestionSearchOption().keyword(s.toString()).city(city));
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

    }

    private void initLocationData(){
        locationClient = new LocationClient(getApplicationContext());
        locationClient.registerLocationListener(myLocationListener);
        option = new LocationClientOption();
        option.setIsNeedAddress(true);
        option.setNeedNewVersionRgc(true);
        locationClient.setLocOption(option);
        locationClient.start();

        suggestionSearch = SuggestionSearch.newInstance();

        suggestionSearch.setOnGetSuggestionResultListener(listener);
    }

    OnGetSuggestionResultListener listener = new OnGetSuggestionResultListener() {
        @Override
        public void onGetSuggestionResult(SuggestionResult suggestionResult) {
            if (suggestionResult == null || suggestionResult.getAllSuggestions() == null) {
                Toast.makeText(getApplicationContext(), "wrong2"+suggestionResult.error,Toast.LENGTH_SHORT).show();
                return;
            }
            list.clear();
            Toast.makeText(getApplicationContext(), "work"+suggestionResult.getAllSuggestions().get(0).toString(),Toast.LENGTH_SHORT).show();
            for (SuggestionResult.SuggestionInfo suggestionInfo:suggestionResult.getAllSuggestions()) {
                list.add(suggestionInfo.toString());
            }
            suggestionAddressAdapter.setSuggestionAddresses(list);
            suggestionAddressAdapter.notifyDataSetChanged();
        }
    };
  • 写回答

1条回答 默认 最新

  • dabocaiqq 2020-03-19 09:45
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)