Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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
Java 未决意图不';我不能运行这项服务_Java_Android_Android Intent_Android Service_Android Pendingintent - Fatal编程技术网

Java 未决意图不';我不能运行这项服务

Java 未决意图不';我不能运行这项服务,java,android,android-intent,android-service,android-pendingintent,Java,Android,Android Intent,Android Service,Android Pendingintent,我试图使用转换API来检测用户活动,所以我定义了一个挂起的意图,并为它构建了一个运行的服务,但它就是不运行。 此外,我不知道这是否很重要,但无论如何,一旦检测到设备仍然存在,服务应该与我构建的服务器通信,但如果我使用断点调试程序,它看起来甚至没有进入服务 它只是在我编写行pendingent.send()时启动了服务,但它对我没有任何帮助,因为它根本没有收到任何数据 还定义了意图的onCreate方法: @Override protected void onCreate(Bundle saved

我试图使用转换API来检测用户活动,所以我定义了一个挂起的意图,并为它构建了一个运行的服务,但它就是不运行。 此外,我不知道这是否很重要,但无论如何,一旦检测到设备仍然存在,服务应该与我构建的服务器通信,但如果我使用断点调试程序,它看起来甚至没有进入服务

它只是在我编写行
pendingent.send()
时启动了服务,但它对我没有任何帮助,因为它根本没有收到任何数据

还定义了意图的onCreate方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_running);

    // Go fullscreen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    mContext = this;
    activityRecognitionClient = ActivityRecognition.getClient(mContext);

    Intent intent = new Intent(this, TransitionIntentService.class);

    pendingIntent = PendingIntent.getService(this, 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    configureSettingsButton();
}
活动检测构建:

public void registerHandler(final View view) {
    transitions = new ArrayList<>();

    transitions.add(new ActivityTransition.Builder()
            .setActivityType(DetectedActivity.STILL)
            .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_ENTER)
            .build());

    transitions.add(new ActivityTransition.Builder()
            .setActivityType(DetectedActivity.STILL)
            .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_EXIT)
            .build());

    transitions.add(new ActivityTransition.Builder()
            .setActivityType(DetectedActivity.IN_VEHICLE)
            .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_ENTER)
            .build());

    transitions.add(new ActivityTransition.Builder()
            .setActivityType(DetectedActivity.IN_VEHICLE)
            .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_EXIT)
            .build());

    transitions.add(new ActivityTransition.Builder()
            .setActivityType(DetectedActivity.WALKING)
            .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_ENTER)
            .build());


    transitions.add(new ActivityTransition.Builder()
            .setActivityType(DetectedActivity.WALKING)
            .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_EXIT)
            .build());


    transitions.add(new ActivityTransition.Builder()
            .setActivityType(DetectedActivity.RUNNING)
            .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_ENTER)
            .build());

    transitions.add(new ActivityTransition.Builder()
            .setActivityType(DetectedActivity.RUNNING)
            .setActivityTransition(ActivityTransition.ACTIVITY_TRANSITION_EXIT)
            .build());


    ActivityTransitionRequest activityTransitionRequest = new ActivityTransitionRequest(transitions);

    Task<Void> task = activityRecognitionClient.requestActivityTransitionUpdates(activityTransitionRequest, pendingIntent);

    task.addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            textView = findViewById(R.id.textView4);
            scan = findViewById(R.id.startSearching);
            textView.setVisibility(View.VISIBLE);
            scan.setVisibility(View.INVISIBLE);
            Toast.makeText(mContext, "Started scanning", Toast.LENGTH_LONG).show();
        }
    });

    task.addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(mContext, "Failed to build transition object", Toast.LENGTH_LONG).show();
            e.printStackTrace();
        }
    });

}
提前谢谢

编辑:我的清单文件:

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:ignore="GoogleAppIndexingWarning">
    <activity android:name=".profile" />
    <activity android:name=".settingInterests" />
    <activity android:name=".languages" />
    <activity android:name=".settings" />
    <activity android:name=".Login" />

    <service android:name=".TransitionIntentService"></service>

    <activity android:name=".running" />
    <activity android:name=".SignupPage2" />
    <activity android:name=".SignupPage1" />
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>


您是否已在清单中添加了必要的权限?大多数使用活动转换API的示例都将
广播接收器
用作
挂起内容
的目标,而不是
服务
。那可能是你的问题。请将清单内容添加到问题中(编辑问题并添加清单)。另外,您的
服务的
onCreate()
是否被调用过?添加了清单,并且onCreate从未被调用,因为该服务从未运行过?您是否在清单中添加了必要的权限?大多数使用活动转换API的示例都使用
广播接收器作为
挂起内容的目标,不是
服务
。那可能是你的问题。请将清单内容添加到问题中(编辑问题并添加清单)。另外,您的
服务的
onCreate()
是否被调用过?添加了清单,并且onCreate从未被调用,因为该服务从未运行过
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:ignore="GoogleAppIndexingWarning">
    <activity android:name=".profile" />
    <activity android:name=".settingInterests" />
    <activity android:name=".languages" />
    <activity android:name=".settings" />
    <activity android:name=".Login" />

    <service android:name=".TransitionIntentService"></service>

    <activity android:name=".running" />
    <activity android:name=".SignupPage2" />
    <activity android:name=".SignupPage1" />
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>