Tung Mai Le의 의견에 응답하도록 업데이트되었습니다.
google.navigation 인 텐트를 처리하도록 앱을 나열하려면 이전 프로그램을 테스트 해보기 위해 작은 프로그램을 만들었습니다. 문제가 어디에 있는지 잘 모르겠습니다. 안드로이드 4.0 HTC 전화에서 실행
, 당신이 사용하거나 안드로이드의 버전 확실하지 않다 장치는 (등
완전한 매니페스트
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.navigation.com"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="google.navigation" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>
전체 코드를 뿌리 경우 더
package com.navigation.com;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mIntent = getIntent();
if (parseNavigationIntent(mIntent)) {
{
}
private Intent mIntent = null;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
private boolean parseNavigationIntent(Intent intent) {
if (null == intent)
return false;
String scheme = intent.getScheme();
if (null==scheme || (!scheme.equals("google.navigation") && !scheme.equals("geo")))
return false;
String data;
if (null == (data = intent.getData().getSchemeSpecificPart()))
return false;
// parse data to get longitude, latitude, and possible address dependent on callers
// formatting
return true;
}
나는 구글지도에서 탐색을 활성화하고, 로빈에서, 모두가 내 앱 목록을 생성하고 선택하면 그것은 INT 인식) 구문 분석을 시도합니다 등등.
Robin의 기본값으로 Google 탐색기 (또는 귀하 이외의 다른 프로그램)를 사용하기 위해 체크 박스를 선택했다면 앱이 시작되지 않습니다.
더 이상 기본 환경 설정 관련 없었다 있도록 로빈의 데이터를 삭제해야 할 것 (핵 옵션의 종류 그러나 내가이 취소 동료에 볼 수있는 유일한 방법) 내가 사용하도록 설정하면
내 애플 리케이션은 항상 그냥 시작하고 나에게 올바른 구성표 및 데이터 패키지를 주었다. 의도를 시작할 수 있습니다 응용 프로그램 (나의 네비게이션 테스트입니다)
시도의 목록 http://stackoverflow.com/a/4392898/802469 – Jakar