background
Я пытаюсь запустить waze с следующей целью из асинхронной задачи onPostExecute после того, как задача геокодирует адрес, но это не работает. ссылка работает нормально, как я плохо объясняю, у нее есть кое-что для запуска намерения из onPostExecute говорит, что не может разрешить намерение в logcat.
объявление класса:
public static class WazeAsyncLaunch extends AsyncTask<String, Void, Intent> {
Context mContext = null;
public WazeAsyncLaunch(Context context){
mContext = context;
}
это doInBackground
protected Intent doInBackground(String... addresses) {
//does geocoding here, i give short version
Uri intentURI = Uri.parse("https://waze.com/ul?ll=48.8566969,2.3514616&navigate=yes");
Intent mapIntent = new Intent(Intent.ACTION_VIEW);
mapIntent.setData(intentURI);
mapIntent.addCategory(Intent.CATEGORY_DEFAULT);
mapIntent.addCategory(Intent.CATEGORY_BROWSABLE);
return mapIntent;
}
, а вот onPostExecute, где происходит ошибка
protected void onPostExecute(Intent result) {
mContext.startActivity(result);
}
Я вызываю его из обработчика события кнопки onclick в mainacctivity, как этот
new WazeAsyncLaunch(MainActivity.this).execute(address);
основываясь на указателе сообщества, я также попробовал это в моем onPostExecute, но безрезультатно
String url = "https://www.waze.com/ul?ll=40.75889500%2C-73.98513100&navigate=yes&zoom=17";
Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse( url ) );
startActivity( intent );
интересно, также не работает, когда я делаю:
adb shell am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT -c android.intent.category.BROWSABLE -d https://waze.com/ul?ll=48.8566969,2.3514616&navigate=yes
, но это работает, когда я делаю:
adb shell am start -d https://waze.com/ul?ll=48.8566969,2.3514616&navigate=yes
это также работает, когда я нажимаю на эту ссылку на моем телефоне https://waze.com/ul?ll=48.8566969, 2.3514616 & navigate = yes
указатели:
есть на устройстве не установлен браузер. (только waze).
- в манифесте waze есть следующий фильтр намерений:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:host="www.waze.com"/>
<data android:host="waze.com"/>
<data android:pathPattern="/ul.*"/>
</intent-filter>
поэтому не знаю, почему мой код не работает, однако, учитывая факт нажатия кнопки adb и link, я вижу, что намерение работает, когда только данные передаются без категории и действия , но я не знаю, как запустить намерение в java только с данными и без других свойств.
вопрос
как я могу запустить намерение из java только с строкой данных ? или если есть другое решение?