在 android 中给予运行时短信权限错误

give runtime sms permission error in android

我正在尝试从设备发送消息,但每当我从应用程序发送消息时,它都会出现“发送短信”权限错误。 它给出了这个错误...id 10281 没有 android.permission.SEND_SMS。 我正在尝试以下代码。

public void fetch(String cstfrom, String msg) {
    //Cursor c = database.rawQuery("SELECT * FROM " + tableName + " where Category = '" +categoryex + "'" , null);
    String query = "SELECT mobile FROM employee WHERE empcst ='" + cstfrom + "' ";
    database = dbHelper.getReadableDatabase();
    Cursor cursor = database.rawQuery(query, null);
    while (cursor.moveToNext()) {
        itemname = cursor.getString(cursor.getColumnIndex("mobile"));
        Toast.makeText(this, itemname, Toast.LENGTH_SHORT).show();
        final int PERMISSION_REQUEST_CODE = 1;

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            if (checkSelfPermission(Manifest.permission.SEND_SMS)
               == PackageManager.PERMISSION_DENIED) {

                Log.d("permission", "permission denied to SEND_SMS - requesting it");
                String[] permissions = {Manifest.permission.SEND_SMS};

                requestPermissions(permissions, PERMISSION_REQUEST_CODE);
                SmsManager sms = SmsManager.getDefault();
                sms.sendTextMessage(itemname, null, "hiii", null, null);

            }
        }
    }
    cursor.close();
}

将其包含在清单中

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

您是否编辑了 Manifest.xml 文件?

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.roa.sendsms"
android:versionCode="1"
android:versionName="1.0">

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

您的实现不是处理权限的正确方法。我制作了一个帮助程序库,我认为它会让您更轻松。 说明:https://github.com/nabinbhandari/Android-Permissions