ActivityCompat在eclipse中找不到.checkSelfPermission

时间:2017-07-15 08:18:52

标签: java android eclipse

我创建了可以发送消息的程序。当我使用Activity.checkSelfPermission时,它显示错误,如“方法checkSelfPermission(MainActivity,String)未定义类型ActivityCompat”。我已经导入了android.support.v4.app.ActivityCompat。我的目标API 23也用API 23编译。怎么解决?

enter image description here

enter image description here

以下是真实代码

public class MainActivity extends Activity {

public static final int MY_PERMISSION_SEND_SMS = 10;
public EditText edSMS, edPhone;
public Button btnSent;

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

    edSMS = (EditText)findViewById(R.id.editText1);
    edPhone = (EditText)findViewById(R.id.editText2);
    btnSent = (Button)findViewById(R.id.button1);
    onCheckPermission();
}

private void onCheckPermission() {
    if(ActivityCompat.checkSelfPermission(this,Manifest.permission.SEND_SMS)!= PackageManager.PERMISSION_GRANTED){
        ActivityCompat.requestPermission(this, new String[]{Manifest.permission.SEND_SMS}, MY_PERMISSION_SEND_SMS);
    }       
    else {
        sentMessage();
    }
}
private void sentMessage() {
    btnSent.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            String phoneNumber = edPhone.getText().toString();
            String SMS = edSMS.getText().toString();
            if(((phoneNumber.length() == 10) || (phoneNumber.length()==9)) && phoneNumber.length()>0){
                SmsManager smsText = SmsManager.getDefault();
                smsText.sendTextMessage(phoneNumber, null, SMS, null, null);
                Toast.makeText(MainActivity.this, "SMS was sent successful", Toast.LENGTH_LONG).show();
                edPhone.setText("");
                edSMS.setText("");
            } else {
                Toast.makeText(MainActivity.this, "Please check your " + "phone number again",Toast.LENGTH_LONG).show();
            }
        }
    });
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){
    switch (requestCode){
        case MY_PERMISSION_SEND_SMS:
            if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                Toast.makeText(this, "Read Contacts permission granted", Toast.LENGTH_SHORT).show();
                sentMessage();
            }else{
                Toast.makeText(this, "Read Contacts permission denied", Toast.LENGTH_SHORT).show();
                if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.SEND_SMS)){
                    new AlertDialog.Builder(this).
                    setTitle("Request Permission SMS").
                    setMessage(" You must set permission to access this application").show();
                }
            }
            break;
    }
}

1 个答案:

答案 0 :(得分:-1)

只需使用support.v7import android.support.v7.app.AppCompatActivity;),这就是滚动

顺便问一下?为什么你现在仍然使用eclipse?只需使用Android工作室,它就更好了。