发送短信的权限

时间:2017-11-14 20:41:04

标签: android android-studio

我想知道我做错了什么?我知道使用sdk版本24+我需要获得一些额外的运行时权限,但我尝试了很多它们并且到目前为止没有任何工作..所以这是代码,我添加了最后一部分的权限请求,但它仍然无法正常工作,应用程序打开,但当我点击按钮应用程序崩溃..任何人都知道什么是错的?

MAIN_ACTIVITY的代码:

public class MainActivity extends Activity {

ImageView imageView;
Button button;
boolean running;


protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);

    imageView = (ImageView) findViewById(R.id.imageView);

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

    running = false;

    button.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            if(!running){
            ((AnimationDrawable) imageView.getDrawable()).start();
            running = true;}

            SmsManager.getDefault().sendTextMessage("+3564245237",null,"1", null, null);

            int GET_MY_PERMISSION = 1;
            if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.SEND_SMS)
                    != PackageManager.PERMISSION_GRANTED){
                if(ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
                        Manifest.permission.SEND_SMS)){

                }
                else{

                    ActivityCompat.requestPermissions(MainActivity.this,
                            new String[]{Manifest.permission.SEND_SMS},GET_MY_PERMISSION);
                }
            }

        }
    }
    );
}

}

我在我的画作中也有这个:

<uses-permission android:name="android.permission.SEND_SMS"/>

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您是否添加了[onRequestPermissionResult()](https://developer.android.com/reference/android/support/v4/app/ActivityCompat.OnRequestPermissionsResultCallback.html#onRequestPermissionsResult(int,java.lang.String [],int []))?

它看起来像什么都没回来。

您确定要调用requestPermissions吗?如果shouldShouldRequestPermissionRationale为false,则没有任何反应。