PermissionUtils无法解析

时间:2016-06-04 07:09:02

标签: android google-maps google-play-services

我正在开发一款可让用户轻松报告坑洼和其他路边问题的应用。我的具体问题在于我所包含的地图;在报告活动中,用户可以使用谷歌地图和一些标记来查明问题所在。要做到这一点,我基本上是从谷歌地图api逐字复制代码,我的问题是权限utils对象不是从谷歌播放服务继承。我已经把这段代码放了一段时间(出于挫折),所以我不记得其他问题是什么,但我记得得到权限的代码工具不给我一个错误是一种婊子。无论如何所以请帮助; _;。我为我的代码划分方式道歉,这对我来说在视觉上更容易,第一个块是消息活动,第二个块是我的清单。如果我发布任何其他内容,请告诉我。

package com.example.fixmytown;


    import java.util.List;

    import com.google.android.gms.common.api.GoogleApiClient;
    import com.google.android.gms.location.LocationServices;
    import com.google.android.gms.maps.GoogleMap;
    import com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener;
    import com.google.android.gms.maps.MapFragment;
    import com.google.android.gms.maps.OnMapReadyCallback;
    import com.google.android.gms.maps.model.LatLng;
    import com.google.android.gms.maps.model.MarkerOptions;

    import android.Manifest;
    import android.content.Intent;
    import android.content.pm.PackageManager;
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.content.ContextCompat;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.Toast;


    import com.google.android.gms.maps.SupportMapFragment;

    import android.support.annotation.NonNull;
    import android.support.v4.app.ActivityCompat;
    import android.support.v7.app.AppCompatActivity;

    public class Message extends FragmentActivity implements OnMyLocationButtonClickListener,
    OnMapReadyCallback,
    ActivityCompat.OnRequestPermissionsResultCallback {

        private static final int LOCATION_PERMISSION_REQUEST_CODE = 1;
        private boolean mPermissionDenied = false;

        private GoogleMap mMap;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.maps_frag);
            MapFragment mapFragment = (MapFragment) getFragmentManager()
                    .findFragmentById(R.id.map);
            mapFragment.getMapAsync(this);
    //----------------------------[Don't Mess with the above]------------------------------------------------------------
            android.app.ActionBar actionBar = getActionBar();






    //-------------------------------------------------------------------------------------------------------------------   
            //you were trying to figure out why the action bar isnt changing title. beinga bitch
            String subject = " ";

            if (Black.activityType == 1){
                subject = "Pothole";
            }
            else if (Black.activityType == 2){
                subject = "Roadkill";
            }
            else if (Black.activityType == 3){
                subject = "Pollution";
            }
            else if(Black.activityType == 4){
            //  getActionBar().setTitle("Email Public Servant ");
            }

        }
    //-------------------------------------------------------------------------------------------------------------------   

          @Override
            public void onMapReady(GoogleMap map) {
                mMap = map;

                mMap.setOnMyLocationButtonClickListener(this);
                enableMyLocation();
            }
            private void enableMyLocation() {
                if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                        != PackageManager.PERMISSION_GRANTED) {
                    // Permission to access the location is missing.
                    PermissionUtils.requestPermission(this, LOCATION_PERMISSION_REQUEST_CODE,
                            Manifest.permission.ACCESS_FINE_LOCATION, true);
                } else if (mMap != null) {
                    // Access to the location has been granted to the app.
                    mMap.setMyLocationEnabled(true);
                }
            }



    //-------------------------------------------------------------------------------------------------------------------   

        public void sendMessage(View view) {
            EditText text = (EditText)findViewById(R.id.MessageText);
            String Description = text.getText().toString();

        String subject = "";

                if (Black.activityType == 1){
                    subject = "Pothole";
                }
                else if (Black.activityType == 2){
                    subject = "Roadkill";
                }
                else if (Black.activityType == 3){
                    subject = "Pollution";
                }
                else if(Black.activityType == 4){
                //  getActionBar().setTitle("Email Public Servant ");
                }
    //-------------------------------------------------------------------------------------------------------------------   

        //email ability 
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("message/rfc822");
            i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"mckippy@gmail.com"});
            i.putExtra(Intent.EXTRA_SUBJECT, subject);
            i.putExtra(Intent.EXTRA_TEXT   , Description);
            try {
                startActivity(Intent.createChooser(i, "Send mail..."));
            } catch (android.content.ActivityNotFoundException ex) {
                Toast.makeText(Message.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
            }
        }
    //-------------------------------------------------------------------------------------------------------------------   

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.message, 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 boolean onMyLocationButtonClick() {
            // TODO Auto-generated method stub
            return false;
        }


    }

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.fixmytown"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-permission android:name="com.google.android.providers.gsf.permisson.READ_GSERVICES"/>


      <uses-permission
            android:name="android.permission.ACCESS_NETWORK_STATE" /> 
      <uses-permission 
            android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:screenOrientation="portrait"
            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>
        <activity
            android:screenOrientation="portrait"
            android:name=".Black"
            android:label="@string/title_activity_black" >
        </activity>
        <activity
            android:screenOrientation="portrait"
            android:name=".Green"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/title_activity_green"
            android:theme="@style/FullscreenTheme" >
        </activity>
        <activity
            android:screenOrientation="portrait"
            android:name=".Message"
            android:label="@string/title_activity_message" >
        </activity>
        <meta-data 
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="AIzaSyA0e26vc4-YGqmvOQSA6lQfnZyt3dmmbek"/>
    </application>

</manifest>

0 个答案:

没有答案