을 사용하여 의도가 실행되지 않습니다. http://developer.android.com/training/location/activity-recognition.html의 샘플을 새 GoogleApiClient로 수동으로 이식하려고했습니다.새 GoogleApiClient ActivityRecognition
불행히도 ActivityRecognition의 업데이트가 하나 뿐인 경우가 대부분입니다.
문제를 찾기 위해 가능한 한 코드를 줄였습니다.
이@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set the main layout
setContentView(R.layout.activity_main);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(ActivityRecognition.API)
.addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(Bundle bundle) {
Log.d("ActivityRecognition", "Google Play Services connected");
Intent i = new Intent(MainActivity.this, ActivityRecognitionIntentService.class);
PendingIntent mActivityRecognitionPendingIntent = PendingIntent.getService(MainActivity.this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
ActivityRecognition.ActivityRecognitionApi.
requestActivityUpdates(mGoogleApiClient, 1000, mActivityRecognitionPendingIntent);
}
@Override
public void onConnectionSuspended(int i) {
}
})
.build();
mGoogleApiClient.connect();
}
ActivityRecognitionIntentService 샘플에서 모든 코드를 가지고 있지만, '뭔가'를 볼 수있는 희망 onHandleIntent
의 시작 로그를 추가 한 일이 구글에 대한 검사 서비스 및 오류 처리를 재생하지 않습니다.
public class ActivityRecognitionIntentService extends IntentService {
...
/**
* Called when a new activity detection update is available.
*/
@Override
protected void onHandleIntent(Intent intent) {
Log.d("ActivityRecognitionIntentService", "onHandleIntent " + ActivityRecognitionResult.hasResult(intent));
...
}
}
그리고 마지막으로 매니페스트
:<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="21" />
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION"/>
<application android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.Sample">
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:uiOptions="splitActionBarWhenNarrow" android:description="@string/app_description">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".ActivityRecognitionIntentService"></service>
</application>
</manifest>
감사합니다 내가 무엇을 잘못하고 있는가에 대한 모든 아이디어를.
PendingIntent.getService(MainActivity.this, (int)Math.random(), i, PendingIntent.FLAG_UPDATE_CURRENT);
는 의도가 firering을 시작 : 문제가 PendingIntent
PendingIntent.getService(MainActivity.this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
의 건설에해야 할 일을했을 경우 내가 해당 코드를 변경하는 경우