对于想了解窗口–如何使任务栏闪烁我的应用程序像Messenger当新消息到达时?的读者,本文将提供新的信息,我们将详细介绍任务栏闪动怎么设置,并且为您提供关于android–移动应用程序:如何在不离开
对于想了解窗口 – 如何使任务栏闪烁我的应用程序像Messenger当新消息到达时?的读者,本文将提供新的信息,我们将详细介绍任务栏闪动怎么设置,并且为您提供关于android – 移动应用程序:如何在不离开我的应用程序的情况下显示我的应用程序在弹出窗口中发送的OTP?、android-即使已安装我的应用程序,它也不会出现在我的应用程序抽屉中、c# – 在我的应用程序中收听MessageBox和Dialog、c# – 如何只在我的应用程序中的所有其他窗口上保持一个窗口?的有价值信息。
本文目录一览:- 窗口 – 如何使任务栏闪烁我的应用程序像Messenger当新消息到达时?(任务栏闪动怎么设置)
- android – 移动应用程序:如何在不离开我的应用程序的情况下显示我的应用程序在弹出窗口中发送的OTP?
- android-即使已安装我的应用程序,它也不会出现在我的应用程序抽屉中
- c# – 在我的应用程序中收听MessageBox和Dialog
- c# – 如何只在我的应用程序中的所有其他窗口上保持一个窗口?
窗口 – 如何使任务栏闪烁我的应用程序像Messenger当新消息到达时?(任务栏闪动怎么设置)
[DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool FlashWindowEx(ref FLASHWINFO pwfi); [StructLayout(LayoutKind.Sequential)] public struct FLASHWINFO { public UInt32 cbSize; public IntPtr hwnd; public UInt32 dwFlags; public UInt32 uCount; public UInt32 dwTimeout; } public const UInt32 FLASHW_ALL = 3;
调用功能:
FLASHWINFO fInfo = new FLASHWINFO(); fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo)); fInfo.hwnd = hWnd; fInfo.dwFlags = FLASHW_ALL; fInfo.uCount = UInt32.MaxValue; fInfo.dwTimeout = 0; FlashWindowEx(ref fInfo);
这是从Pinvoke.net无端插上
android – 移动应用程序:如何在不离开我的应用程序的情况下显示我的应用程序在弹出窗口中发送的OTP?
他们是怎么做到的?是否有一些我应该关注的iOS / Android规范,它允许我们类似地弹出OTP而无需用户必须转到SMS屏幕,然后回到我们的应用程序?谢谢!
编辑:我有非常有用的Android建议.现在正在寻找这些建议的iOS变体.了解iOS有更严格的沙盒限制,所以“听众”可能会更复杂?
解决方法
>在AndroidManifest中声明接收器
<receiver android:name=".IncomingSms"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
2在AndroidManifest中提供阅读短信权限
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_SMS" />
AndroidManifest.xml文件的完整代码:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.androidexample.broadcastreceiver" android:versionCode="1" android:versionName="1.0" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.androidexample.broadcastreceiver.broadcastNewSms" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.androidexample.broadcastreceiver.IncomingSms"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> </application> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_SMS" /> </manifest>
IncomingSms.java文件的完整代码:
public class IncomingSms extends broadcastReceiver { // Get the object of SmsManager final SmsManager sms = SmsManager.getDefault(); public void onReceive(Context context,Intent intent) { // Retrieves a map of extended data from the intent. final Bundle bundle = intent.getExtras(); try { if (bundle != null) { final Object[] pdusObj = (Object[]) bundle.get("pdus"); for (int i = 0; i < pdusObj.length; i++) { SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); String phoneNumber = currentMessage.getdisplayOriginatingAddress(); String senderNum = phoneNumber; String message = currentMessage.getdisplayMessageBody(); Log.i("SmsReceiver","senderNum: "+ senderNum + "; message: " + message); // Show Alert int duration = Toast.LENGTH_LONG; Toast toast = Toast.makeText(context,"senderNum: "+ senderNum + ",message: " + message,duration); toast.show(); } // end for loop } // bundle is null } catch (Exception e) { Log.e("SmsReceiver","Exception smsReceiver" +e); } } }
在您的活动中注册广播接收器,您将获得输出
android-即使已安装我的应用程序,它也不会出现在我的应用程序抽屉中
为什么应用程序不会出现在应用程序抽屉中?它说在应用程序管理器中已安装它,但由于它不在应用程序抽屉中,所以我似乎无法打开实际的应用程序.一旦安装,它也不会自动打开.
这是我选择在手机(在Jellybean上)上运行时所说的话.当我将其安装到仿真器时,它说的是同一件事.
[2012-09-19 16:20:24 - TheForeverAloneQuiz] Performing sync
[2012-09-19 16:20:24 - TheForeverAloneQuiz] Automatic Target Mode: Several compatible targets. Please select a target device.
[2012-09-19 16:20:28 - TheForeverAloneQuiz] Uploading TheForeverAloneQuiz.apk onto device '001988a8094d8e'
[2012-09-19 16:20:28 - TheForeverAloneQuiz] Installing TheForeverAloneQuiz.apk...
[2012-09-19 16:20:31 - TheForeverAloneQuiz] Success!
[2012-09-19 16:20:31 - TheForeverAloneQuiz] /TheForeverAloneQuiz/bin/TheForeverAloneQuiz.apk installed on device
[2012-09-19 16:20:31 - TheForeverAloneQuiz] Done!
这是android清单.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mikenning.foreveralonequiz"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light.NoTitleBar" >
<activity
android:name=".Introduction"
android:label="@string/title_activity_introduction" >
<intent-filter>
<action android:name="android.intent.action.INTRO" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".QuestionOne"
android:label="@string/title_activity_introduction" >
<intent-filter>
<action android:name="android.intent.action.QUESTIONONE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".Result"
android:label="@string/title_activity_introduction" >
<intent-filter>
<action android:name="android.intent.action.RESULTS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
我做错了什么吗?
旁白我也收到错误消息,说我不需要分类为“默认”活动的许可.这可能与它有关吗?在我的一个专栏中,我需要它用于startActivity(),所以真的不需要吗?
解决方法:
我假设介绍是您的第一个活动.您需要向其添加另一个操作,如以下代码所示:
<activity
android:name=".Introduction"
android:label="@string/title_activity_introduction" >
<intent-filter>
<action android:name="android.intent.action.INTRO" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
c# – 在我的应用程序中收听MessageBox和Dialog
它适用于报告表单中的任何控件,但我还需要知道表单启动了哪些常见的对话框/消息框以及用户如何响应它们.我应该提到的是,这里更大的目标是自动化:我们希望最终得到一组可重复的步骤,这些步骤可以编写成在自动化工具中播放的内容.为此,仅知道用户点击“文件/打开”是不够的;我们还需要知道启动的OpenFileDialog的窗口标题,用户选择的路径和DialogResult. MessageBox调用也是如此;我们需要知道窗口标题和DialogResult.
常见的对话框似乎对事件的支持很少(FolderbrowserDialog显然根本没有任何事件),而且我甚至不确定在监听MessageBox调用的结果时从哪里开始.当然,我可以编写一个封装常见对话框和MessageBox调用的包装类,并将结果传递给“ControlMonitor”实例……但是程序的其余部分必须始终使用这个包装类,并且我的“ControlMonitor”类的目标是,您可以将其包含在项目中,并在其中一个表单上进行监听,而对原始代码的入侵最小.
在“ControlMonitor”课程中我能做些什么吗?我需要所有对话框/消息框的DialogResults和窗口标题,对于更复杂的对话框,如OpenFileDialog,我还需要知道用户选择的路径等.“ControlMonitor”类是它试图听的程序的编译部分to,所以它可以直接访问传递给它的Form对象.我离这儿很近;我可以监视95%的应用程序,因为它大部分只是表单上的控件……我只需要一种方法来监视对话框!
解决方法
微软发布的The Composite UI Application Block有一个示例事件代理,但编写自己的代理并不多.这个想法的要点是你有一个中央经纪人,你的控件发布事件.然后,任何其他类都可以订阅任何这些事件.这使得事件发布/订阅松散耦合并消除了不同控件之间的强依赖性.
c# – 如何只在我的应用程序中的所有其他窗口上保持一个窗口?
它不能是模态的(因此不能使用ShowDialog())因为应用程序需要在后台继续尝试并且如果最终可以获取锁定则自动关闭窗口,并且它实际上不应该是整个窗口的最顶层站(即在该终端会话中运行的所有应用程序).
我知道Form.TopMost属性,但它只能带来并保持一个窗口高于所有其他窗口,甚至是其他应用程序的窗口.这显然不是我想要的.
我知道这是可能的,我以前在其他应用程序中已经看过很多次了.我只是不知道怎么做.
解决方法
Show
方法,它将保留在主窗体的顶部,但不会位于其他应用程序之上.因此,在主窗体中,您可以使用如下代码:
StatusForm statusForm = new StatusForm(); statusForm.Show(this);
但是,这只会指出应用程序的一个窗口作为所有者.
我们今天的关于窗口 – 如何使任务栏闪烁我的应用程序像Messenger当新消息到达时?和任务栏闪动怎么设置的分享就到这里,谢谢您的阅读,如果想了解更多关于android – 移动应用程序:如何在不离开我的应用程序的情况下显示我的应用程序在弹出窗口中发送的OTP?、android-即使已安装我的应用程序,它也不会出现在我的应用程序抽屉中、c# – 在我的应用程序中收听MessageBox和Dialog、c# – 如何只在我的应用程序中的所有其他窗口上保持一个窗口?的相关信息,可以在本站进行搜索。
本文标签: