我制作的应用程序应该在手机收到带有特定内容(如密码)的短信时启动。我尝试了很多代码,但它仍然无法运行。有人可以帮帮我吗?
这是我的代码: SmsReceiver.java
%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
from ipywidgets import interact
from IPython.display import display
images = np.random.random((500, 14, 14))
fig, ax = plt.subplots()
im = ax.imshow(images[0], cmap='gray', interpolation='nearest')
def browse_images(images):
N = images.shape[0]
def view_image(i=0):
im.set_data(images[i])
ax.set_title('Image {0}'.format(i))
fig.canvas.draw_idle()
interact(view_image, i=(0, N-1))
的AndroidManifest.xml
browse_images(images)
是的,我有什么方法可以模拟短信,所以如果我想查看它是否正常工作,我不必要求别人给我发短信
答案 0 :(得分:1)
您正在将应用程序设置为启动器应用程序,只有在您单击要运行的图标时才会执行此操作。您需要指定用于在收到SMS时启动应用程序的intent过滤器。然后在代码中,您可以在Main活动中设置广播接收器以收听后续文本。
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 1 :(得分:1)
不要使用compileSdkVersion,targetSdkVersion,buildToolsVersion 23或更高版本。因为在API级别23中,广播接收器中的SMS_RECEIVED操作被拒绝许可
使用21或更低版本。下面的配置适用于我
compileSdkVersion 21
buildToolsVersion“21.1.2”
targetSdkVersion 21