小编The*_*Man的帖子

LocationRequest setInterval(long millis)和LocationRequest setFastestInterval(long millis)之间的区别

我在android中每隔5分钟编写一次自己的后台位置更新.我想知道setInterval和setFastestInterval之间的区别

当我将setInterval设置为5分钟并将setFastestInterval设置为2分钟.每2分钟调用一次位置更新.

我想知道区别.我无法理解这个https://developer.android.com/reference/com/google/android/gms/location/LocationRequest.html的开发者页面中究竟写了什么.

另外:只有当第一次更新的距离超过20米并且第二次更新时,是否有内置功能来检查位置更新?

谢谢!

gps android location locationmanager

70
推荐指数
3
解决办法
3万
查看次数

无条件布局,来自视图适配器的膨胀:应使用View Holder模式

我在日食中得到以下警告:

视图适配器的无条件布局膨胀:应使用View Holder模式(使用传递给此方法的循环视图作为第二个参数)以实现更平滑的滚动.

上:

convertView = vi.inflate(R.layout.activity_friend_list_row, parent, false);
Run Code Online (Sandbox Code Playgroud)

我有一个实现了CheckBox的基础适配器,我添加了一个标签以使CheckBox工作.

这是代码:

 public View getView(final int position, View convertView, ViewGroup parent) 
  {

    ViewHolder mViewHolder;
    mViewHolder = new ViewHolder();
    LayoutInflater vi = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    convertView = vi.inflate(R.layout.activity_friend_list_row, parent, false);

    mViewHolder.cb = (CheckBox) convertView.findViewById(R.id.checkBox);

    convertView.setTag(mViewHolder);

    if (InviteFriends.isChecked[position] == true)
    {
        mViewHolder.cb.setChecked(true);
    }
    else
    {
        mViewHolder.cb.setChecked(false);
    }

    mViewHolder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean ischecked) 
        {
            if (buttonView.isChecked())
            {
                InviteFriends.isChecked[position] = true;

            }
            else
            {
                InviteFriends.isChecked[position] = false;
            }
        }
    });

    TextView …
Run Code Online (Sandbox Code Playgroud)

java android layout-inflater

48
推荐指数
3
解决办法
3万
查看次数

将分钟转换为毫秒Java/android

我试图将给定的分钟数转换为毫秒.

例如:15分钟或20分钟或44分钟应以编程方式转换为毫秒.

我试过以下:

Calendar alarmCalendar = Calendar.getInstance();

alarmCalendar.set(Calendar.MINUTE,15);

long alarmTime = alarmCalendar.getTimeInMillis();

Log.e("Milli", "seconds"+alarmTime);
Run Code Online (Sandbox Code Playgroud)

这没有给出正确的价值?转换它的最佳方法是什么?

java datetime android

37
推荐指数
3
解决办法
7万
查看次数

在android中设置重复周日警报

有人可以为设定的重复周日警报提供良好的逻辑吗?我通过使用每周做一次警报

            alarmCalendar.set(Calendar.HOUR, AlarmHrsInInt);
            alarmCalendar.set(Calendar.MINUTE, AlarmMinsInInt);
            alarmCalendar.set(Calendar.SECOND, 0);
            alarmCalendar.set(Calendar.AM_PM, amorpm);

            Long alarmTime = alarmCalendar.getTimeInMillis();

Intent intent = new Intent(Alarm.this, AlarmReciever.class);
                intent.putExtra("keyValue", key);
                PendingIntent pi = PendingIntent.getBroadcast(Alarm.this, key, intent, PendingIntent.FLAG_UPDATE_CURRENT);
                am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime, 7*1440*60000 , pi); 
Run Code Online (Sandbox Code Playgroud)

警报触发按时触发,7天后会自动触发.

但我的要求是我想选择几天而不是仅仅七天.

类似于每周一,周二,周四上午9:00 - 警报应自动触发.我如何在setRepeating中执行此操作.

有人可以帮我解决这个问题吗?

谢谢!

java android alarmmanager repeatingalarm

13
推荐指数
2
解决办法
3万
查看次数

权限拒绝:不允许在android中发送广播

我创建了一个简单的相机应用程序.除了Android 4.4之外,它在Android的所有版本中都能正常运行.当我从相机应用程序拍照时,我收到以下错误.

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=26089, uid=10120
Run Code Online (Sandbox Code Playgroud)

出现错误:

在以下地方:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
Run Code Online (Sandbox Code Playgroud)

如何解决KITKAT的这个问题?

让我知道!

谢谢!

android android-camera

12
推荐指数
3
解决办法
3万
查看次数

Android中的自定义传入/传出呼叫屏幕

我正在尝试实现自定义传入/传出呼叫屏幕.以下是我的尝试.你提出了两个问题

  1. 有时它会调用手机上的默认传入屏幕,或者有时会调用自定义屏幕.我会打电话总是打电话给定制的屏幕.

  2. 我无法发出传出电话.自定义屏幕刚出现但没有拨打任何电话.

如何解决这个问题,我不确定这里有什么问题.如果有人可以帮我解决这个问题会很棒.

这是我正在尝试的:

表现:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar" >
    <activity
        android:name="com.honey.ringer.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.honey.ringer.AcceptCall"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.ANSWER" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <receiver
        android:name="com.honey.ringer.PhoneListenerBroad">
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" />
            <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
        </intent-filter>
    </receiver>
</application>
Run Code Online (Sandbox Code Playgroud)

BroadCastReciever:这有传入和传出

public class PhoneListenerBroad extends BroadcastReceiver
{

Context c;
private String outgoing;

@Override
public …
Run Code Online (Sandbox Code Playgroud)

android android-manifest

10
推荐指数
1
解决办法
2万
查看次数

Android中的Spinner未选择位置0

我创建了一个有三个项目的微调器

日常

每周

每月一次

我在我的java文件中做了以下内容:

navSpinner = new ArrayList<SpinnerNavItem>();
        navSpinner.add(new SpinnerNavItem(getResources().getString(R.string.dailyview)));
        navSpinner.add(new SpinnerNavItem(getResources().getString(R.string.weekview)));
        navSpinner.add(new SpinnerNavItem(getResources().getString(R.string.monthview)));

        adapter = new TitleNavigationAdapter(getActivity().getApplicationContext(), navSpinner);
        mSpinner = (Spinner) rootView.findViewById(R.id.spinner);
        mSpinner.setAdapter(adapter);
        mSpinner.setOnItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)

OnItemSelected方法(Implements AdapterView.OnItemSelectedListener)

public void onItemSelected(AdapterView<?> parentView, View v, int position, long id) {

        Log.e("Position", "= " + position);

        if (mNaviFirstHit)
        {
            mNaviFirstHit = false;
        }
        else
        {

            Fragment fragment = null;
            switch (position) {
                case 0:

                    Log.e("Week", "= " + position);
                    break;

                case 1:

                    backspace = 1;

                    Log.e("Week", "= " + position);

                    break;

                case …
Run Code Online (Sandbox Code Playgroud)

android android-spinner

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

如何在Google Maps v2 android中顺利保持移动当前位置标记

我为我的位置放了一个标记.我想顺利地移动我的标记,就像Google地图应用程序一样.当我继续在车里行驶时,蓝色圆圈移动得非常顺畅.我想为我的应用实现相同的功能.我如何在我的应用程序上实现这一点?

截至目前,我的位置标记只是在非常位置变化时跳转到不同位置并在那里标记标记.

这就是我所做的:

 googleMap.setMyLocationEnabled(true);
Run Code Online (Sandbox Code Playgroud)

因此自动调用onMyLocationChange方法:

@Override
public void onMyLocationChange(Location location) 
{
    curlat = location.getLatitude();
    curlong = location.getLongitude();

    if (markermylocation != null)
    {
        markermylocation.remove();
    }

        curlat = location.getLatitude();
        curlong = location.getLongitude();
        myLocation(curlat, curlong, username, imageURL, ZOOMVALUE);
}
Run Code Online (Sandbox Code Playgroud)

在mylocaiton方法:

private void myLocation(double lat, double lng, String name, String url, float zoom)
{
    if(firsttime  == 1)
    {
        LatLng ll = new LatLng(lat,lng);
        CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
        googleMap.animateCamera(update);
        firsttime = 0;
    }

    final String uname = name; 
    curlat = lat;
    curlong = lng; …
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-android-api-2

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

在Android中打开Gallery App

我正在尝试按下我的应用程序中的按钮打开内置的图库应用程序.

我正在试用Android 2.3及以上的手机.我拥有的手机/平板电脑

三星S(Android 2.3.5)LG手机(Android 2.3.3)Nexus One(Android 2.3.6)Android平板电脑(Android 4.0.3)Galaxy Nexus(Android 4.3)

我尝试了以下方法:

Intent intent = new Intent(Intent.ACTION_VIEW, null);
intent.setType("image/*");
startActivity(intent); 
Run Code Online (Sandbox Code Playgroud)

上面的代码在Android平板电脑(4.0.3)和我的Nexus手机上工作得很好..但如果在任何低于3.0的手机上运行相同的应用程序(给我错误)

08-24 11:47:53.628: E/AndroidRuntime(787):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
08-24 11:47:53.628: E/AndroidRuntime(787):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
08-24 11:47:53.628: E/AndroidRuntime(787):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-24 11:47:53.628: E/AndroidRuntime(787):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
08-24 11:47:53.628: E/AndroidRuntime(787):  at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 11:47:53.628: E/AndroidRuntime(787):  at android.os.Looper.loop(Looper.java:130)
08-24 11:47:53.628: E/AndroidRuntime(787):  at android.app.ActivityThread.main(ActivityThread.java:3687)
08-24 11:47:53.628: E/AndroidRuntime(787):  at java.lang.reflect.Method.invokeNative(Native Method)
08-24 11:47:53.628: E/AndroidRuntime(787):  at java.lang.reflect.Method.invoke(Method.java:507)
08-24 11:47:53.628: E/AndroidRuntime(787):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
08-24 11:47:53.628: E/AndroidRuntime(787):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
08-24 11:47:53.628: E/AndroidRuntime(787): …
Run Code Online (Sandbox Code Playgroud)

java android android-gallery

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

在android中获取最后通话时长

我正在寻找一种最简单的方法来获得上次拨打号码的通话时长.因此,例如,如果我在拨打电话时打电话给我的妈妈,则会出现持续时间的通知.

我正在尝试以下但问题是它带有一个完整的持续时间列表.传入,传出,错过.

我如何区分它:

我尝试了以下方法:

 private void getCallDetails() {

    StringBuffer sb = new StringBuffer();
    Cursor cur = getContentResolver().query( CallLog.Calls.CONTENT_URI,null, null,null, android.provider.CallLog.Calls.DATE + " DESC");

    int number = cur.getColumnIndex( CallLog.Calls.NUMBER ); 
    int duration = cur.getColumnIndex( CallLog.Calls.DURATION);
    sb.append( "Call Details : \n");
    while ( cur.moveToNext() ) {
        String phNumber = cur.getString( number );
        String callDuration = cur.getString( duration );
        String dir = null;

        sb.append( "\nPhone Number:--- "+phNumber +" \nCall duration in sec :--- "+callDuration );
        sb.append("\n----------------------------------");
    }
    cur.close();
    call.setText(sb);
}
Run Code Online (Sandbox Code Playgroud)

android calllog

8
推荐指数
3
解决办法
2万
查看次数