2016-10-05 61 views
0

我正在致電一個通話應用程序,需要請求CALL_PHONE權限,當我嘗試開始通話活動startActivity(callIntent);時,它給出了一個錯誤,並說我需要設置一個權限檢查器,給了我一個錯誤的this聲明說,Android權限檢查器語法錯誤

Wrong 1st Argument type.Found:'android.view.View.OnClickListener',required:'android.context.Context'

所以我的繼承人我的主要活動,如果你能皮斯幫我糾正它

package com.android.beez.emergencyng; 

import android.Manifest; 
import android.content.Intent; 
import android.content.pm.PackageManager; 
import android.net.Uri; 
import android.support.v4.app.ActivityCompat; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 

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

     Button alert = (Button) findViewById(R.id.alert); 

     alert.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
Intent callIntent = new Intent(Intent.ACTION_CALL); 
       callIntent.setData(Uri.parse("tel:123")); 
       if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 
       // TODO: Consider calling 
       // ActivityCompat#requestPermissions 
       // here to request the missing permissions, and then overriding 
       // public void onRequestPermissionsResult(int requestCode, String[] permissions, 
       //           int[] grantResults) 
       // to handle the case where the user grants the permission. See the documentation 
       // for ActivityCompat#requestPermissions for more details. 
       return; 
      } 
      startActivity(callIntent); 

     } 
    }); 

    } 
} 

回答

0

鐠oblem是在這一行

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) 

變化thisMainActivity.this

0

你傳入點擊監聽的情況下引用這是不對的。使用MainActivity.this作爲參數

if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) 

,而不是

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) 
0

this在你的情況下指的是你new View.OnClickListener創建匿名類。要修復您的錯誤更改thisMainActivity.this