2017-07-15 16 views
0

メッセージを送信できる作成プログラムがあります。 Activity.checkSelfPermissionを使用すると、「メソッドCheckSelfPermission(MainActivity、String)がタイプActivityCompatに対して未定義」のようなエラーが表示されます。私はすでにandroid.support.v4.app.ActivityCompatをインポートしています。私のターゲットAPI 23とAPI 23でもコンパイルしてください。どのようにそれを解決するには?以下はActivityCompatがeclipseで.checkSelfPermissionを見つけることができません。

enter image description here

enter image description here

だけsupport.v7import android.support.v7.app.AppCompatActivity;)を使用し、これがうまく、なぜあなたはまだですか?方法によって

をrolvedされている実際のコード

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; 
    } 
} 
+0

[ANDROID STUDIO]に切り替え –

+0

[Android Marshmallow Permissionが動作しない](https://stackoverflow.com/questions/39342237/android-marshmallow-permission-for-my-eclipse-project) –

+0

@IntelliJAmiyaもう解決法はありませんか? –

答えて

0

です今Eclipseを使用していますか?Androidスタジオを使用するだけで、それほど優れています。

+0

Androidスタジオで試してみます。 –

関連する問題