Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 活动转换API调用意图_Android_Activitytransitionapi - Fatal编程技术网

Android 活动转换API调用意图

Android 活动转换API调用意图,android,activitytransitionapi,Android,Activitytransitionapi,ActivityTransitionUpdate始终返回null。但如果我将其更改为requestactivityupdate,它就可以正常工作。但是我需要转换API。我不明白这为什么不起作用,特别是因为几天前它还起作用 我尝试过重写代码,在网络上到处寻找,从其他项目复制代码,这些项目显然是有效的,但是requestActivityTransitionUpdates不想再有效了。我也卸载并重新安装了android studio,但没有任何效果 主要活动 ''' ''' 我的舱单 ''' 当应用程

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");
    }