在android中给运行时sms权限错误

时间:2017-08-14 13:16:50

标签: android sms

我正在尝试从设备发送消息,但每当我从应用程序发送消息时,它都会给出SEND sms权限错误。 它给出了这个错误... 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();
}

3 个答案:

答案 0 :(得分:1)

在清单

中加入此内容
<uses-permission android:name="android.permission.SEND_SMS"/>

答案 1 :(得分:1)

您是否编辑过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"/>

答案 2 :(得分:0)

您的实现不是处理权限的正确方法。我已经建立了一个帮助库,我认为这将使您更容易。 说明:https://github.com/nabinbhandari/Android-Permissions