2011-12-14 2 views
1

Я пытаюсь создать простое приложение, которое может отправлять текстовое сообщение с моего мобильного телефона Android на другой сотовый телефон, но на данный момент я использую эмуляторы. Проблема, которую я получаю, заключается в том, что приложение постоянно останавливается неожиданно.Ошибка отправки текстового сообщения Android

Я посмотрел на LogCat и я замечаю, я получаю эту строку

12-13 23: 36: 49,611: ERROR/AndroidRuntime (29001): java.lang.SecurityException: Отправка SMS сообщение: Пользователь 10131 не имеет android.permission.SEND_SMS.

Но это меня смущает, потому что в моем AndroidManifest.xml у меня есть этот код

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="net.learn2develop.SMSMessaging" 
     android:versionCode="1" 
     android:versionName="1.0"> 


    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".SMS" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 


     </activity> 

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

    </application> 
</manifest> 

я сделал один шаг, а я врезаться на этой линии

sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 

с аргументами следующим образом

  • phoneNumber: My Cell номер телефона в виде строки в формате "XXXXXXXXXX"

  • нуль: нуль

  • сообщение: "тестирование"

  • sentPI = PendingIntent.getBroadcast (это, 0, новый Intent (пересылаются) , 0);

  • PendingIntent поставленныйPI = PendingIntent.getBroadcast (это, 0, новое намерение (ПОДАЧА), 0);

С ОТПРАВЛЕННОЙ будучи

Строки ПОСЛАНЫ = "SMS_SENT";

и DELIVERED быть

Строка DELIVERED = "SMS_DELIVERED";

Я понятия не имею, что теперь делать. У меня есть googled, и я не видел никого другого с моей проблемой.

Любая помощь приветствуется! Спасибо, Крис

ответ

3

В <uses-permission ...> теги должны быть под <manifest> тега, а не <application> тега.

+0

спасибо очень очень! Я потратил много часов, пытаясь понять эту проблему. Это не помогает, чтобы каждый сайт, который я видел, имел тег под тегом . –

+0

@ Barda4 - Всегда приятно читать [документацию] (http://developer.android.com/guide/topics/manifest/uses-permission-element.html). В этом случае раздел «CONTAINED IN» установил бы вас на правильном пути. :) –

Смежные вопросы