相关疑难解决方法(0)

我们可以在Android到达收件箱之前删除其中的短信吗?

我正在从收件箱中删除短信,但我想知道:如何在收到收件箱之前将其删除?

sms android

100
推荐指数
3
解决办法
5万
查看次数

以编程方式删除Android SMS

我想在我的Android应用程序中自动删除某些SMS.因此,我有一种方法可以完全按照我的意愿行事.但是,它仅在我将应用程序从Eclipse直接部署到我的手机时才有效.然后它删除传入的短信.但是,如果从市场下载应用程序,则无效.但也没有错误.有人知道我如何解决这个问题,或者这只能在root设备上运行吗?

public void deleteSMS(Context context, String message, String number) {
    try {
        mLogger.logInfo("Deleting SMS from inbox");
        Uri uriSms = Uri.parse("content://sms/inbox");
        Cursor c = context.getContentResolver().query(uriSms,
            new String[] { "_id", "thread_id", "address",
                "person", "date", "body" }, null, null, null);

        if (c != null && c.moveToFirst()) {
            do {
                long id = c.getLong(0);
                long threadId = c.getLong(1);
                String address = c.getString(2);
                String body = c.getString(5);

                if (message.equals(body) && address.equals(number)) {
                    mLogger.logInfo("Deleting SMS with id: " + threadId);
                    context.getContentResolver().delete(
                        Uri.parse("content://sms/" + id), null, null); …
Run Code Online (Sandbox Code Playgroud)

sms android

31
推荐指数
3
解决办法
5万
查看次数

如何分析Android上传入的短信?

我如何在Android中进行编码,以便我的应用程序可以分析传入的短信并可能阻止它或做某事(可能移动到不同的SMS文件夹)在SMS实际发出通知告诉用户新短信之前?我会针对Android 2.1及更高版本.

我想分析用户指定的垃圾邮件单词的传入短信,如果找到则要删除/标记为已读/将邮件移动到其他文件夹.

sms android

19
推荐指数
1
解决办法
1万
查看次数

我想获取和查看短信对话?

ContentResolver cr = getContentResolver();
Cursor cur = cr.query(Uri.parse("content://sms/conversations/"), null,null,null, null);     
Run Code Online (Sandbox Code Playgroud)

不工作为什么?

<uses-permission android:name="android.permission.READ_SMS" />
Run Code Online (Sandbox Code Playgroud)

权限已添加.

08-12 10:56:39.188: ERROR/AndroidRuntime(377): Caused by: android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: SELECT , body AS snippet FROM sms, (SELECT thread_id AS group_thread_id, MAX(date)AS group_date,COUNT(*) AS msg_count FROM sms GROUP BY thread_id) AS groups WHERE (sms.thread_id = groups.group_thread_id AND sms.date =groups.group_date)
08-12 10:56:39.188: ERROR/AndroidRuntime(377):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:143)
08-12 10:56:39.188: ERROR/AndroidRuntime(377):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:111)
08-12 10:56:39.188: ERROR/AndroidRuntime(377):     at android.content.ContentProviderProxy.bulkQuery(ContentProviderNative.java:279)
08-12 10:56:39.188: ERROR/AndroidRuntime(377):     at android.content.ContentProviderProxy.query(ContentProviderNative.java:298)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): …
Run Code Online (Sandbox Code Playgroud)

android

15
推荐指数
2
解决办法
2万
查看次数

Android - 查询SMS ContentProvider?

我目前在以下URI"content:// sms /"上注册了一个内容观察者,以监听正在发送的传入和传出消息.

这似乎工作正常,我也尝试从短信数据库中删除但我只能删除以下URI中的整个线程"content:// sms/conversations /"

这是我用于此的代码

String url = "content://sms/"; 
        Uri uri = Uri.parse(url); 
        getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler));                    

}

class MyContentObserver extends ContentObserver { 

    public MyContentObserver(Handler handler) { 

        super(handler); 

    }

@Override public boolean deliverSelfNotifications() { 
    return false; 
    }

@Override public void onChange(boolean arg0) { 
    super.onChange(arg0);

     Log.v("SMS", "Notification on SMS observer"); 

    Message msg = new Message(); 
    msg.obj = "xxxxxxxxxx";

    handler.sendMessage(msg);

    Uri uriSMSURI = Uri.parse("content://sms/");
    Cursor cur = getContentResolver().query(uriSMSURI, null, null,
                 null, null);
    cur.moveToNext();
    String protocol = cur.getString(cur.getColumnIndex("protocol"));
    if(protocol == null){ …
Run Code Online (Sandbox Code Playgroud)

sms android uri android-contentprovider

12
推荐指数
1
解决办法
4万
查看次数

如何从android(phonegap)上的javascript访问短信收件箱

我刚刚发现了PhoneGap,并想知道是否有办法从Javascript访问SMS收件箱.或者,如果在使用HTML/CSS/JS解决方案创建的应用程序中执行此操作还有另一种简单方法.

在phonegap文档中没有关于短信访问的信息,但是收件箱可能是网址还是文件夹?

我想坚持使用phonegap,以便应用程序可以在许多设备上运行,但只有Android的解决方案也是令人满意的.

javascript sms android cordova

9
推荐指数
1
解决办法
1万
查看次数

从收件箱中删除短信

我想在用户阅读后从收件箱中删除短信.这该怎么做?

编辑:

公共类SmsReceiver扩展BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub

    Bundle bundle = intent.getExtras();        
    SmsMessage[] msgs = null;
    String address = null;

    if(bundle!=null)  {
        String info = " ";
        Object[] pdus = (Object[]) bundle.get("pdus");
        msgs = new SmsMessage[pdus.length];

        for (int i=0; i<msgs.length; i++) {
            msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                
                address=msgs[i].getDisplayOriginatingAddress();
                info += msgs[i].getMessageBody().toString();

        } 
        /*String str=bundle.getString("state");
        Log.v("State",str);*/

        if((PhoneNumberUtils.isWellFormedSmsAddress(address))){             //set ! and address length

        //abortBroadcast();
        Log.v("phone num","wellformed");
            Uri deleteUri = Uri.parse("content://sms");

            Cursor c = context.getContentResolver().query(deleteUri, null, …
Run Code Online (Sandbox Code Playgroud)

sms android inbox

8
推荐指数
2
解决办法
2万
查看次数

如何在android中以编程方式从收件箱中删除所有短信?

我正在开发一个应用程序,我想从收件箱中删除所有短信.为此,我使用了以下代码.

Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = getContentResolver().query(uriSms, null,null,null,null); 
int id = c.getInt(0);
int thread_id = c.getInt(1); //get the thread_id
getContentResolver().delete(Uri.parse("content://sms/conversations/" + thread_id),null,null);
Run Code Online (Sandbox Code Playgroud)

此代码不起作用.有没有办法做同样的事情?

android

8
推荐指数
1
解决办法
6733
查看次数

在4.4.4上删除Android上的短信(受影响的行= 0(零),删除后)

我想从我的Android设备发送短信并从mydevice(已发送的消息)中删除它.

SMS保存在设备(4.4.4)中,但不会使用我的代码删除SMS.删除行后影响= 0(零).

我的设备vesrion是4.4.4.

在其他设备中,不保存SMS.为什么SMS会在Android 4.4.4中保存?

我不想保存我发送的短信或失败的短信(没有发送).

请帮我.

我的权限

<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
Run Code Online (Sandbox Code Playgroud)

我的代码是发送短信

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(number, null, msg, null, null);
Run Code Online (Sandbox Code Playgroud)

我从处理程序调用方法deleteSMS()与postselay为5秒

Handler handler = new Handler();
handler.postDelayed(new Runnable() {

            @Override
            public void run() {
                String message = CastApplication.mPref.getString(context.getResources().getString(R.string.pref_message_to_friend), "");
                deleteSMS(context, message, number);

                if (MyCastFragment.getInstance() != null) {
                    MyCastFragment.getInstance().updateView();
                }

                progressDialog.dismiss();
                context.finish();
            }
        }, 5000);
Run Code Online (Sandbox Code Playgroud)

删除短信

public void deleteSMS(Context ctx, String message, String number) {
        try {
            Uri uriSms = Uri.parse("content://sms");
            Cursor c = …
Run Code Online (Sandbox Code Playgroud)

android smsmanager

8
推荐指数
1
解决办法
2万
查看次数

android abortBroadcast不会阻止短信被广播

在我的onReceive方法中我有这个代码:

if (from.equals(number)) {
    abortBroadcast();
    in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(in);
    Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(context, "Not from needed number", Toast.LENGTH_SHORT).show();
}   
Run Code Online (Sandbox Code Playgroud)

其中number ="29853" - 我希望捕获的数字消息,而不是保存在收件箱中.

此代码正常工作 - 如果sms来自第一个Toast的数字,它打印消息的内容,如果sms不是来自数字"Not from needed number"打印.问题是abortBroadcast没有使其业务 - 虽然接收者的优先级是1000,但来自号码的消息仍然在手机的收件箱中:

<receiver android:name=".service_classes.MyReceiver">
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED"
                android:priority="1000" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

有什么问题 - 为什么不abortBroadcast工作?

android broadcastreceiver

6
推荐指数
2
解决办法
1万
查看次数