package com.java.wjd.android;import android.app.Activity;
import android.content.ContentValues;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;public class ScreenTest extends Activity {   
    
    class SmsContent extends ContentObserver{   
        private Cursor cursor = null;   
        public SmsContent(Handler handler) {   
            super(handler);   
        }   
           
        /**  
         * @Description 当短信表发送改变时,调用该方法   
         *              需要两种权限  
         *              Android.permission.READ_SMS读取短信  
         *              android.permission.WRITE_SMS写短信  
         * @Author Snake  
         * @Date 2010-1-12  
         */  
        @Override  
        public void onChange(boolean selfChange) {   
            // TODO Auto-generated method stub   
            super.onChange(selfChange);   
            //读取收件箱中指定号码的短信   
            cursor = managedQuery(Uri.parse("content://sms/inbox"), new String[]{"_id", "address", "read"}, " address=? and read=?", new String[]{"15555215556", "0"}, "date desc");   
               
            if (cursor != null){   
                ContentValues values = new ContentValues();   
                values.put("read", "1");        //修改短信为已读模式   
                cursor.moveToFirst();   
                while (cursor.isLast()){   
                    //更新当前未读短信状态为已读   
                    getContentResolver().update(Uri.parse("content://sms/inbox"), values, " _id=?", new String[]{""+cursor.getInt(0)});   
                    cursor.moveToNext();   
                }   
            }   
        }   
    }   
       
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.main);   
        SmsContent content = new SmsContent(new Handler());   
        //注册短信变化监听   
        this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, content);    
    }   
}  
10-08 02:49:23.531: WARN/BackupManagerService(52): dataChanged but no participant pkg='com.android.providers.settings' uid=10017
10-08 03:23:56.582: ERROR/AndroidRuntime(326): Uncaught handler: thread main exiting due to uncaught exception
10-08 03:23:56.662: ERROR/AndroidRuntime(326): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.java.wjd.android/com.java.wjd.android.ScreenTestActivity}: java.lang.ClassNotFoundException: com.java.wjd.android.ScreenTestActivity in loader dalvik.system.PathClassLoader@44c068d8
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at android.os.Looper.loop(Looper.java:123)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at android.app.ActivityThread.main(ActivityThread.java:4363)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at java.lang.reflect.Method.invokeNative(Native Method)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at java.lang.reflect.Method.invoke(Method.java:521)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at dalvik.system.NativeStart.main(Native Method)
10-08 03:23:56.662: ERROR/AndroidRuntime(326): Caused by: java.lang.ClassNotFoundException: com.java.wjd.android.ScreenTestActivity in loader dalvik.system.PathClassLoader@44c068d8
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
10-08 03:23:56.662: ERROR/AndroidRuntime(326):     ... 11 more
请问这段代码有什么问题啊
androidManifest.xml文件权限已经设置好了

解决方案 »

  1.   

    你代码中的类名是ScreenTest,为什么下面报错提示的是找不到类ScreenTestActivity啊?这个Activity你在AndroidManifest.xml中注册了吗?
      

  2.   

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.java.wjd.android"
          android:versionCode="1"
          android:versionName="1.0">
        <uses-sdk android:minSdkVersion="7" />
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS"/>
    <uses-permission android:name="android.permission.WRITE_SMS"/>
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".ScreenTestActivity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>    </application>
    </manifest>
    这是我的AndroidManifest.xml
      

  3.   

    <activity android:name=".ScreenTestActivity"
      android:label="@string/app_name">
      <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      </activity>android:name=".ScreenTest"