如何确定Java对象是否为NULL或不在Tasker中? -- sms 领域 和 tasker 领域 和 java 领域 android 相关 的问题

How determine if Java object is null or not in Tasker?


简体版||繁體版
3
vote

问题

中文

我希望一个任务任务从特定人员读取短信,并将一些信息从最新消息中提取。

例如,由于我制作的事务,我收到了我的银行的大量消息。触摸任务,我想知道我的最新银行余额。通常情况下,我会从我的银行那里获得最新的短信,并找出它的余额。我希望Tasker这样做。

我知道Tasker可以在到达时读取消息。但是我们必须制作一个与之相关的个人资料。这不是我的用例。它更加点然。

这是我尝试创建该效果的任务:

  Flash Roam (10)     A1: Java Function [ Return:cr Class Or Object:CONTEXT Function:getContentResolver {ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ]      A2: If [ cr !Set ]     A3: Flash [ Text:Ok Long:Off ]      A4: End If    

我无法确定 cr 是null。

检查它的正确方法是什么?或者在任务者中甚至可能是可能的?

english

I want a Tasker task that reads SMS from a particular person and extracts some information out of the latest message.

For example, I get a lot of messages from my bank due to the transactions I make. At the touch of a task, I want to know my latest bank balance. Normally, I would get the latest SMS from my bank and find out the balance from it. I want Tasker to do this.

I am aware that Tasker can read messages when they arrive. But we have to make a profile that does it. This is not my use-case. It's more on-demand.

Here is the task I tried to create to that effect:

Flash Roam (10)     A1: Java Function [ Return:cr Class Or Object:CONTEXT Function:getContentResolver {ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ]      A2: If [ cr !Set ]     A3: Flash [ Text:Ok Long:Off ]      A4: End If  

I am unable to ascertain if cr is null or not.

What is the correct way to check it? Or is this even possible in Tasker?

        

回答列表

3
 
vote

有两种方式可以为java对象进行空检查。


是第一种方式,直接从用户指南,正在检查对象 Equals null

如果

可以在条件下直接引用Java对象。 null-value对象被文本表示 null

示例:

  If, arr[0][0] eq 45 If, arr[0].length > 3  If, lightlevel Equals null   

此问题是字符串"null" 也将匹配该条件。在您的情况下,这不是一个问题,但我的第二种方法提供了一种可以区分两个用于其他情况的方式。


第二种方式利用Tasterer内置错误检查。如果您有一个对象,需要检查它是否为null:

  1. 使用Java函数操作。对于"对象或类" ,使用所讨论的对象,然后for"函数" 选择"ToString {String}()" *。最后,检查选中"错误后继续任务" 。您在此处不需要返回值。
  2. 使用if动作遵循函数,如果变量 %err 设置(或未设置)。
  3. 如果 %err 设置,则对象为null。否则,它不是null。

%err 如果对象是字符串"null" ,则不会设置,因为 "null".toString() 是完美的有效代码。

*如果函数列表中唯一的选项是"分配{...}()" ,则您正在使用原始类型 - 一个数字,布尔值或字符。那些不能为null,所以不需要检查。

 

There are two ways you can do null checking of Java objects.


The first way, direct from the userguide, is checking of the object Equals null:

If

A Java object can be directly referenced in a condition. Null-value objects are replaced with text representation null.

Examples:

If, arr[0][0] eq 45 If, arr[0].length > 3  If, lightlevel Equals null 

The problem with this is that the string "null" will also match the condition. In your case, that's not a concern, but my second method provides a way that can distinguish between the two for other cases.


The second way takes advantage of Tasker's built-in error checking. If you have an object and need to check whether or not it's null:

  1. Use a Java Function action. For "Object or Class", use the object in question, then for "Function" select "toString {String} ()"*. Lastly, make sure "Continue Task After Error" is checked. You don't need a return value here.
  2. Follow the Function with an If action, which tests if the variable %err is set (or isn't set).
  3. If %err is set, the object is null. Otherwise, it's not null.

%err will not be set if the object is the string "null", because "null".toString() is perfectly valid code.

* If your only option in the Function list is "assign {...} ()", then you're working with a primitive type - a number, boolean, or character. Those can't be null, so checking is unnecessary.

 
 

相关问题

4  错误:java.lang.illegalstateException:java.util.concurrent.TimeOutexception:Thread Binder_C放弃了等待在180000ms后等待分区  ( Error java lang illegalstateexception java util concurrent timeoutexception t ) 
在如何将应用程序转移到非采用的SD中的混合格式SD卡棉花糖存储?: $ adb shell sm分区盘:179,64混合25 我遇到这个错误: 错误:java.lang.illegalstateException:java.util.concurrent.TimeOutException:Thread Bi...

1  透明NotificationBar / statusBar for Android 4.3 [已关闭]  ( Transparent notificationbar statusbar for android 4 3 ) 
关闭。这个问题是 off-topic 。它目前不接受答案。 想要改进这个问题?更新这个问题,所以它是关于android爱好者堆栈交换的主题。 cl...

1  已验证启动keystore生成失败  ( Verified boot keystore generateion failure ) 
我需要为Android验证引导生成自己的密钥库。我采取了这些步骤 mmma system/extra/verity keystore_signer private.der verity.x509.pem keystore.img verity.der ,我收到这个错误 Exception in...

-1  Android不支持Java吗?  ( Does android not supports java ) 
Redmi 6不支持Java。 Redmi Note 5支持Java通过第三方支持。 有什么区别? 我读过quora,不支持java我不能去播放商店。 ...

0  与PDANET +的端口转发  ( Port forwarding with pdanet ) 
我正在尝试启动MINECRAFT服务器,我正在通过端口转发过程。我不能和其他人一起玩兰。我在Android(Galaxy S9 Edge)上使用PDanet +(FoxFi键)。尝试在浏览器进入默认网关时,会话保存超时。在一些研究之后,我发现了端口80关闭。我关掉了我的防火墙,并在互联网上搜索了许多其他建议,仍然是什...

20  是否有支持加载Java applet浏览器的Android浏览器?  ( Are there any android browsers that support loading a java applet in browser ) 
锁定。这个问题及其答案是锁定,因为问题是off-top,但具有历史意义。它目前没有接受新的答案或互动。 我们有一个客户,他们正在切换到基于Android的设备的Windows Mobile...

8  是否有可能在Android上运行MINECRAFT?  ( Is it possible to run minecraft on an android ) 
我在考虑使用一些工具将jar转换为apk。但是我的nexus会有足够的记忆吗?那个控件怎么样? ...

3  如何确定Java对象是否为NULL或不在Tasker中?  ( How determine if java object is null or not in tasker ) 
我希望一个任务任务从特定人员读取短信,并将一些信息从最新消息中提取。 例如,由于我制作的事务,我收到了我的银行的大量消息。触摸任务,我想知道我的最新银行余额。通常情况下,我会从我的银行那里获得最新的短信,并找出它的余额。我希望Tasker这样做。 我知道Tasker可以在到达时读取消息。但是我们必须制作一个与之相关的...

1  为什么Android手机需要Java?  ( Why does android phones need java ) 
我要买一个三星A310F Galaxy A3 。但我注意到了一件事。 特征 Java No 这个三星智能手机没有java。所以我的问题是:这真的很糟糕吗?为什么Android智能手机需要Java?这是一个很大的缺点吗? ...

12  你能在Android上运行'普通'Java程序吗?  ( Can you run normal java programs on android ) 
我知道一些'普通'java(计算机java),我想在我的Android设备上运行这样的程序。这可能吗?如果是,怎么样? ...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有