应用程序显示无输出

时间:2014-09-02 15:05:04

标签: java android xml android-activity google-play-services

我正在研究这款机器人。 但它没有显示输出。 它编译精细,运行良好。 请帮忙。

MainActivity.java

    package com.example.test123;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.location.ActivityRecognitionClient;

import android.support.v7.app.ActionBarActivity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity implements GooglePlayServicesClient.ConnectionCallbacks,GooglePlayServicesClient.OnConnectionFailedListener{
     private ActivityRecognitionClient arclient;
     private PendingIntent pIntent;
     private BroadcastReceiver receiver;
     private TextView tvActivity;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvActivity = (TextView) findViewById(R.id.tvActivity);
        int resp =GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
        if(resp == ConnectionResult.SUCCESS){
         arclient = new ActivityRecognitionClient(this, this, this);
         arclient.connect();

        }
        else{
         Toast.makeText(this, "Please install Google Play Service.", Toast.LENGTH_SHORT).show();
        }

        receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
             String v =  "Activity :" + intent.getStringExtra("Activity") + " " + "Confidence : " + intent.getExtras().getInt("Confidence") + "n";
             v += tvActivity.getText();
             tvActivity.setText(v);
            }
          };

         IntentFilter filter = new IntentFilter();
         filter.addAction("com.example.test123.ACTIVITY_RECOGNITION_DATA");
         registerReceiver(receiver, filter);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


    @Override
    public void onConnectionFailed(ConnectionResult result) {
        Toast.makeText(this, "Connection Failed", Toast.LENGTH_SHORT).show();

    }


    @Override
    public void onConnected(Bundle connectionHint) {
        Intent intent = new Intent(this, ActivityRecognitionService.class);
          pIntent = PendingIntent.getService(this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT);
          arclient.requestActivityUpdates(1000, pIntent);   

    }


    @Override
    public void onDisconnected() {
        // TODO Auto-generated method stub

    }
    protected void onDestroy() {
          super.onDestroy();
          if(arclient!=null){
           arclient.removeActivityUpdates(pIntent);
           arclient.disconnect();
          }
          unregisterReceiver(receiver);
         }
}

ActionRecoginitionService.java

package com.example.test123;



import com.google.android.gms.location.ActivityRecognitionResult;
import com.google.android.gms.location.DetectedActivity;

import android.app.IntentService;
import android.content.Intent;
import android.util.Log;

public class ActivityRecognitionService extends IntentService  {

 private String TAG = this.getClass().getSimpleName();
 public ActivityRecognitionService() {
  super("My Activity Recognition Service");
 }

 @Override
 protected void onHandleIntent(Intent intent) {
  if(ActivityRecognitionResult.hasResult(intent)){
   ActivityRecognitionResult result = ActivityRecognitionResult.extractResult(intent);
   Log.i(TAG, getType(result.getMostProbableActivity().getType()) +"t" + result.getMostProbableActivity().getConfidence());
   Intent i = new Intent("com.example.test123.ACTIVITY_RECOGNITION_DATA");
   i.putExtra("Activity", getType(result.getMostProbableActivity().getType()) );
   i.putExtra("Confidence", result.getMostProbableActivity().getConfidence());
   sendBroadcast(i);
  }
 }

 private String getType(int type){
  if(type == DetectedActivity.UNKNOWN)
   return "Unknown";
  else if(type == DetectedActivity.IN_VEHICLE)
   return "In Vehicle";
  else if(type == DetectedActivity.ON_BICYCLE)
   return "On Bicycle";
  else if(type == DetectedActivity.ON_FOOT)
   return "On Foot";
  else if(type == DetectedActivity.STILL)
   return "Still";
  else if(type == DetectedActivity.TILTING)
   return "Tilting";
  else
   return "";
 }

}

的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test123"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="17" />
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:name="ActivityRecognitionService"></service>
        <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
    </application>

</manifest>

activity_main.xml中

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.test123.MainActivity" >

    <TextView
        android:id="@+id/tvActivity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" 
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"/>

</RelativeLayout>

它运行良好,但只显示你好世界。 为什么会这样?

0 个答案:

没有答案