2011-11-30 2 views
0

아래의 코드를 사용하여받은 편지함에 새 SMS를 삽입합니다.하지만 버튼을 클릭하면 프로그램이 강제 종료됩니다. 무엇이 문제입니까? 감사 force close on use getContentResolver()

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button BTN = (Button) findViewById(R.id.button1); 
    BTN.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      ContentValues values = new ContentValues(); 
      values.put("address", "9878782944"); 
      values.put("body", "foo bar"); 
      values.put("date", "1322039220502"); 
      values.put("read", "1"); 
      getContentResolver().insert(Uri.parse("content://sms/inbox"), values); 
     } 
    }); 
} 

이 오류 제공 :

FATAL EXCEPTION: main 
java.lang.SecurityException: Permission Denial: reading com.android.providers.telephony.MmsSmsProvider uri content://mms-sms/threadID?recipient=9878782944 from pid=337, uid=10038 requires android.permission.READ_SMS 
    at android.os.Parcel.readException(Parcel.java:1247) 
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160) 
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114) 
    at android.content.ContentProviderProxy.insert(ContentProviderNative.java:408) 
    at android.content.ContentResolver.insert(ContentResolver.java:587) 
    at ir.fadesign.sms.Main$1.onClick(Main.java:25) 
    at android.view.View.performClick(View.java:2408) 
    at android.view.View$PerformClick.run(View.java:8816) 
    at android.os.Handler.handleCallback(Handler.java:587) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:123) 
    at android.app.ActivityThread.main(ActivityThread.java:4627) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:521) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
    at dalvik.system.NativeStart.main(Native Method) 
+0

당신이 로그 캣에서 스택 추적을 게시 할 수 등? – gianpi

+0

오류에 대한 자세한 정보가 있습니까? 어떤 유형의 오류가 발생합니까? 아니면 스택 추적입니까? – harbinja

+0

@gianpi 스택 오류 추가 –

답변

2

당신은 당신의 AndroidManifest.xml에 "android.permission.READ_SMS"권한을 추가 할 필요가 당신의 스택 추적을 기반으로합니다. 당신의 AndroidMainfest.xml 파일에

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

:

라인을 추가합니다.

http://developer.android.com/guide/topics/security/security.html#permissions

SIDE 참고 : 당신이 SMS와 함께 몇 가지 물건을 위해 노력하고 나타납니다 . 최종 목표가 무엇인지에 따라 추가 권한이 필요할 수 있습니다.

여기로 이동 : http://developer.android.com/reference/android/Manifest.permission.html

을 그리고 다른 SMS 권한을 살펴 걸릴 : READ_SMS, WRITE_SMS, SEND_SMS, RECEIVE_SMS는, 이