小编Hen*_*sen的帖子

从广播接收器调用服务中的函数

我一直在努力解决这个问题。我有一个假设接收短信的广播接收器,它会这样做,但我想在我的服务中使用一个方法/函数,目的是最终使它成为一个永远不会关闭的前台服务。广播接收器看起来像这样:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;

public class SmsReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent) 
    {
        //---get the SMS message passed in---
        Bundle bundle = intent.getExtras();        
        SmsMessage[] msgs = null;            
        if (bundle != null)
        {
        //---retrieve the SMS message received---
            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]);                
            }
        //want to send msgs[] to SmsService 
        }                         
    }
}
Run Code Online (Sandbox Code Playgroud)

在使其接收的清单中,我添加了:

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

service sms android broadcastreceiver

3
推荐指数
1
解决办法
4832
查看次数

打开 Word 文档,除非它有 C# 密码

我想要做的事情是遍历 word 文档的文件夹,并使用 word 中的 tiff 打印机将它们转换为 .tif 文件。问题是,如果我遇到一个带有密码的文档,它应该跳过该文档而不提示要求输入密码,它应该全部保留在后台。

我可以看到 Document 类有一个 HasPassword 属性,但在打开文档之前无法检查它。

word.Documents.OpenNoRepairDialog(@"c:\testfolder\testDocWithPw.docx", ReadOnly: true);
Run Code Online (Sandbox Code Playgroud)

我还尝试为密码提供一个 emtpy 参数,并尝试捕获错误代码。但是我必须按取消才能提示要求输入密码才能到达那里。

Application word = new Application();
word.DisplayAlerts = WdAlertLevel.wdAlertsNone;
try
{
    word.Documents.OpenNoRepairDialog(@"c:\testfolder\Doc2.docx", ReadOnly: true, PasswordDocument: "");
    word.ActivePrinter = "TIFF Image Printer 10.0";
    Doc.PrintOut(); //printout untested for now
    Doc.Close(false);
}
catch (System.Runtime.InteropServices.COMException ex)
{
    if (ex.ErrorCode == 0x12345678)
    {
        //skip file and log file name and position for review
    }
}
Run Code Online (Sandbox Code Playgroud)

提前谢谢

编辑:只是试图用错误的密码输入密码,我可以使用错误代码部分,最好的部分是,当没有密码时,即使你给它一个密码,它也会打开文件。所以它基本上做了我想要的。在更糟糕的情况下,我猜测某人在我不应该打开的文档上的密码,如果我不应该访问密码错误的文档,我可以检查 hasPassword 属性。

c# interop ms-word

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

标签 统计

android ×1

broadcastreceiver ×1

c# ×1

interop ×1

ms-word ×1

service ×1

sms ×1