2017-05-14 4 views
0

アプリのアクセス許可チェックを自分のアクティビティに移行するために、Androidスタジオプロジェクトに新しいアクティビティを追加したばかりです。「アクティビティ」にアクセスするには - シンボルは解決しません

アクティビティ画面には、アプリケーションに必要な権限の説明が表示されます。また、ユーザが権限を受け入れる準備ができているときにクリックするための下部に「続行」ボタンを付ける理由は?

私は、ボタンに機能clickRequestPermissionsを追加しました。また、次のコードを追加してAndroidに許可を要求しましたが、activityを解決できないというエラーが表示されています。

ActivityCompat.requestPermissions(activity, 
      new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 
      MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION); 

この活動のための完全なコードは非常に簡単ですので、私は、私は上記のスニペットを使用しようとしていますどこに問題があることも信じているように私はそれをここに含めました - どこかにactivityが知られていないか、利用できていないこと。

package com.myApp; 

import android.Manifest; 
import android.support.v4.app.ActivityCompat; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Toast; 


public class permissionsCheckAndSet extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_permissions_check_and_set); 
    } 

    @Override 
    protected void onPostCreate(Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 
    } 

    public void clickRequestPermissions(View v) { 
     Toast.makeText(this, "Request permissions now", Toast.LENGTH_LONG).show(); 
     doRequestPermissions(); 

    } 

    public void doRequestPermissions() { 
     ActivityCompat.requestPermissions(activity, 
       new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 
       MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION); 

    } 
} 

答えて

0

使用「この」またはその代わりに「アクティビティ」のgetApplicationContextは():

public void doRequestPermissions() { 
    ActivityCompat.requestPermissions(this, 
      new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 
      MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION); 

} 
+0

Arrgghhh ...私は私が今までに慣れるつもりだとは思わないときといないときに –

+0

@Fat Monk、あなたはそれを最終的に理解するでしょうから、今この問題を克服するためにgetApplicationContext()を使うことができます。 – aatj

関連する問題