我知道如何截取屏幕截图,但我想知道它是如何工作的.
至少从Android 4.0开始,您可以通过按住手机上的音量减小+电源键来拍摄屏幕截图,Android将捕获当前屏幕并将其保存到SD卡.
我只是想知道是否有人知道这是如何工作的,如果它是一个在后台不断运行的服务,或者每个应用程序中内置的东西,或者.此外,它位于Android的源代码中的哪个位置?
谢谢!
我目前正在开发一个将启动导航意图的应用程序.我知道这不是官方的API,但它完全按照我想要的方式工作.
我允许用户选择驾驶,步行和公交导航到一个位置.直接启动到Google地图导航的意图如下所示:
google.navigation:ll=+经纬度,然后+ &mode=你的运输方式.例如,要使用步行路线导航到某个区域:
google.navigation:ll=blah,blah&mode=w
驾驶是默认的,或者&mode=d,骑自行车是&mode=b,但我无法弄清楚公共汽车(公共交通).
有没有人这样做过?
谢谢!
编辑:到目前为止,我发现mode=public自行车方向,mode=transit驾驶,令人沮丧,mode=bus也返回自行车方向.
更多:mode=train也给驾驶...... GOT是一种方法来做到这一点......
另一个编辑:我刚才意识到我很确定它不存在,因为在试验条款后我意识到我应该通过总线搜索启动谷歌地图意图,但有谁知道如何做到这一点?
当用户解锁屏幕时,我的应用程序需要进行祝酒,因此我注册了一个来BroadcastReceiver获取ACTION_USER_PRESENT清单中的意图,如下所示:
<receiver
android:name=".ScreenReceiver" >
<intent-filter>
<action
android:name="android.intent.action.USER_PRESENT"/>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
然后我定义了一个这样的类:
package com.patmahoneyjr.toastr;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class ScreenReceiver extends BroadcastReceiver {
private boolean screenOn;
private static final String TAG = "Screen Receiver";
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {
screenOn = true;
Intent i = new Intent(context, toastrService.class);
i.putExtra("screen_state", screenOn);
context.startService(i);
Log.d(TAG, " The screen turned on!");
} else if(intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
screenOn = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,Log …
我知道我可以使用自定义Toast布局轻松完成所有这些操作,但在创建自定义布局时,我将不再使用系统的默认Toast视图.
示例:Android 2.2与Android 4.0的Toast当然看起来不同.如果我为我的吐司创建一个自定义视图,那么它在两个版本中都会看起来完全相同,但我想要的是保留它的......"Androidiness",因为缺少一个更好的单词.基本上,有没有人知道默认的toast XML布局?这甚至可能吗?