Android 活动转换API调用意图
ActivityTransitionUpdate始终返回null。但如果我将其更改为requestactivityupdate,它就可以正常工作。但是我需要转换API。我不明白这为什么不起作用,特别是因为几天前它还起作用 我尝试过重写代码,在网络上到处寻找,从其他项目复制代码,这些项目显然是有效的,但是requestActivityTransitionUpdates不想再有效了。我也卸载并重新安装了android studio,但没有任何效果 主要活动 ''' ''' 我的舱单 '''Android 活动转换API调用意图,android,activitytransitionapi,Android,Activitytransitionapi,ActivityTransitionUpdate始终返回null。但如果我将其更改为requestactivityupdate,它就可以正常工作。但是我需要转换API。我不明白这为什么不起作用,特别是因为几天前它还起作用 我尝试过重写代码,在网络上到处寻找,从其他项目复制代码,这些项目显然是有效的,但是requestActivityTransitionUpdates不想再有效了。我也卸载并重新安装了android studio,但没有任何效果 主要活动 ''' ''' 我的舱单 ''' 当应用程
当应用程序打开时,我希望并正在接收转换更新,这些更新存储在应用程序缓存中的csv文件中。现在,我的OnHandleContent甚至没有从任务中正常运行。对此不确定,但可能有帮助:
transitionPendingIntent = PendingIntent.getService(this, 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Task task = activityRecognitionClient.requestActivityUpdates(1000, transitionPendingIntent);
不确定,但可能有帮助:
transitionPendingIntent = PendingIntent.getService(this, 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Task task = activityRecognitionClient.requestActivityUpdates(1000, transitionPendingIntent);
我以前也遇到过同样的事情。似乎最后一个活动转换事件被捕获了。有时,您会从设备捕获中获得旧事件结果。因此,为了避免所有这些问题,请检查转换发生的时间,如果转换发生在30秒前,则忽略回调
if (intent != null) {
if (ActivityTransitionResult.hasResult(intent)) {
ActivityTransitionResult result = ActivityTransitionResult.extractResult(intent);
for (ActivityTransitionEvent event : result.getTransitionEvents()) {
//if event occurred less than 30 seconds, get the event. Sometimes app gets old events from device's catch
//that is why you have to make sure that the event is not that old.
if(((SystemClock.elapsedRealtime()-(event.getElapsedRealTimeNanos()/1000000))/1000) <= 30) {
//Do your staff here......
............................
............................
...............................
}
}
}
}
else {
Log.d(TAG, "onHandleIntent: Banana");
}
if(intent!=null){
if(ActivityTransitionResult.hasResult(intent)){
ActivityTransitionResult=ActivityTransitionResult.extractResult(意图);
for(ActivityTransitionEvent事件:result.getTransitionEvents()){
//如果事件发生时间少于30秒,则获取事件。有时应用程序会从设备捕获中获取旧事件
//这就是为什么你必须确保这个活动没有那么古老。
如果(((SystemClock.elapsedRealtime()-(event.getelapsedrealtimenos()/1000000))/1000)我以前也遇到过同样的情况。似乎上一个活动转换事件保留在catch中。有时,您会从设备的catch中得到一个旧事件结果。因此,为了避免所有这些问题,请检查转换发生时经过的时间,如果转换发生在30秒前,则忽略回调
if (intent != null) {
if (ActivityTransitionResult.hasResult(intent)) {
ActivityTransitionResult result = ActivityTransitionResult.extractResult(intent);
for (ActivityTransitionEvent event : result.getTransitionEvents()) {
//if event occurred less than 30 seconds, get the event. Sometimes app gets old events from device's catch
//that is why you have to make sure that the event is not that old.
if(((SystemClock.elapsedRealtime()-(event.getElapsedRealTimeNanos()/1000000))/1000) <= 30) {
//Do your staff here......
............................
............................
...............................
}
}
}
}
else {
Log.d(TAG, "onHandleIntent: Banana");
}
if(intent!=null){
if(ActivityTransitionResult.hasResult(intent)){
ActivityTransitionResult=ActivityTransitionResult.extractResult(意图);
for(ActivityTransitionEvent事件:result.getTransitionEvents()){
//如果事件发生时间少于30秒,则获取事件。有时应用程序会从设备捕获中获取旧事件
//这就是为什么你必须确保这个活动没有那么古老。
如果(((SystemClock.elapsedRealtime()-(event.getelapsedrealtimenos()/1000000))/1000)我有点担心会耗尽电池。这将作为一项服务运行一整天,我正在努力确保它不会对运行有害。而且它不会给我过渡。我只是不明白为什么过渡会停止工作。我有点担心会耗尽电池。这将运行所有da作为一项服务,我正在努力确保它不会对运行造成损害。另外,它不会给我过渡。我只是不明白为什么过渡会停止工作。
transitionPendingIntent = PendingIntent.getService(this, 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Task task = activityRecognitionClient.requestActivityUpdates(1000, transitionPendingIntent);
if (intent != null) {
if (ActivityTransitionResult.hasResult(intent)) {
ActivityTransitionResult result = ActivityTransitionResult.extractResult(intent);
for (ActivityTransitionEvent event : result.getTransitionEvents()) {
//if event occurred less than 30 seconds, get the event. Sometimes app gets old events from device's catch
//that is why you have to make sure that the event is not that old.
if(((SystemClock.elapsedRealtime()-(event.getElapsedRealTimeNanos()/1000000))/1000) <= 30) {
//Do your staff here......
............................
............................
...............................
}
}
}
}
else {
Log.d(TAG, "onHandleIntent: Banana");
}